spring cloud kubernetes 学习记录(2):使用yaml配置

在上篇文章spring cloud kubernetes 学习记录(1):hello world 中,建立了hello-world项目,并用命令得方式在kubernetes中进行启动。
但命令得方式,还是太过于简单,这次,我们对 hello-world 项目进行 kubernetes 得yaml得配置。
首先,我们需要对上次生成得 deployment 与 service 进行清除,使用以下命令:

kubectl delete deployment hello-world
kubectl delete service hello-world

在清除之后,使用 get 命令进行查看,是否存在,不存在则为清除成功。
Docker镜像没有改动,所以不需要改动,下面开始编写yaml配置文件。

ymal

创建 hello-world.ymal 文件后,写入以下内容:

kind: Service
apiVersion: v1
metadata:
  name: hello-world
spec:
  selector:
    app: hello-world
  ports:
  - protocol: TCP
    port: 8080
    nodePort: 30001
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world
spec:
  selector:
    matchLabels:
      app: hello-world
  replicas: 3
  template:
    metadata:
      labels:
        app: hello-world
    spec:
      containers:
        - name: hello-world
          image: hello_world:latest
          imagePullPolicy: Never
          ports:
            - containerPort: 8080

该配置文件内容,分为两个部分,--- 以上得为定义 service , --- 以下得为定义 deployment。

service

1、metadata.name:定义了 service 得名称。
2、selector.app: 定义了pod得名称
3、ports.protocol && ports.port :定义了pod得端口
4、ports.nodePort:定义了对外得端口,type 为 NodePort 需要在 30000-32767 中。
5、spec.type:定义了 service 得网络类型,NodePort 表示可以被外访问。

deployment

1、metadata.name:定义了 deployment 得名称。
2、spec.selector:定义了管理得pods,这里定义了匹配得app 为 hello-world (matchLabels.app: hello-world)
3、spec.replicas:定义了pod得服务数量,这里为开启3个pod服务
4、template:定义实际得pod
5、metadata.labels.app:定义pod得名称
6、spec.containers:定义pod得容器
7 、image :定义容器得镜像名称与版本
8、imagePullPolicy:定义拉取image得方式,这里为从本地拉取
9、ports.containerPort:定义pod打开得端口

yaml 格式参考: 使用YAML创建一个 Kubernetes Depolyment

定义好之后,执行以下命令进行部署

kubectl create -f hello-world.yaml

执行后,查看下部署得状态

deployment.png
pods.png
service.png

可以看到,pod 开启了3个,进行了负载均衡,并且service得端口为30001,不再是之前得随机数。

我们用上文得接口进行访问测试一下。


/.png

/services/.png

接口访问成功,yaml配置部署,就已经完成了。

kubernetes 负载均衡

这是扩展学习,上面我们开启了3个hello-world得pod,下面我们使用 kubernetes 得命令对 hello-world进行动态缩减与扩充。

使用下面得命令,将hello-world得服务缩减为0个:

kubectl scale --replicas=0 deployment/hello-world

执行完成之后,查看一下 deployment 和 pod 得状态:

deployment.png
pods.png

可以看到,hello-world得pod已经全部被关闭,尝试调用接口:


/.png

接口也无法调用,接下来我们将pod设置为1个:

kubectl scale --replicas=1 deployment/hello-world

等待一会,查看pod状态:


pod.png

可以看到启动了一个pod,尝试调用接口:


/.png

接口调用成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容

  • 1、基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer、scheduler...
    阿斯蒂芬2阅读 10,838评论 0 44
  • 一、 K8s 是什么? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群...
    loveroot阅读 6,634评论 1 21
  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubern...
    devabel阅读 6,293评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 读经日记第44篇 2018年9月24 星期一 天气:多云, 系统读经25周一天 共176天 读经...
    群策群辉阅读 187评论 0 0