kubernetes Pod的手动扩缩容

在这里插入图片描述

一、书写资源清单文件

vim deployment_shoudongpha.yaml
apiVersion: apps/v1      #api版本
kind: Deployment         #控制器
metadata:
  labels:
    app: nginx
  name: nginx                 #Pod名称
spec:
  replicas: 3                   #启动副本数
  selector:                     #设置标签
    matchLabels:
      app: nginx              #必须匹配.spec.template.metadata标签相同,查看标签(kubectl  get  pods  --show-labels)
  minReadySeconds: 5            #等待设置的时间后才进行升级,(如果没有设置该值,在某些极端情况下可能会造成服务不正常运行)
  revisionHistoryLimit: 3       #要保留以允许回滚的旧复制集数
  strategy:                     #策略
    type: RollingUpdate         #默认为滚动更新
    rollingUpdate:              #滚动更新
      maxSurge: 1               #滚动升级时会先启动1个pod
      maxUnavailable: 1         #升级过程中最多有多少个POD处于无法提供服务的状态(该不为0)
  template:                     #模板(相当于定义好的一个python中的模块)
    metadata:
      labels:
        app: nginx             #必须匹配match .spec.selector.matchLabels标签相同。
    spec:
      terminationGracePeriodSeconds: 60  #k8s将会给应用发送SIGTERM信号,可以用来正确、优雅地关闭应用,默认为30秒
      containers:                        #模板(容器模板)
      - image: nginx                   #镜像名字
        name: nginx                    #node节点启动的容器名字,容器名称(docker ps)查看格式k8s_容器名称_Pod名称
        env:
        - name: POD_NAME                 #容器的环境变量名称
          valueFrom:
            fieldRef:
              fieldPath: metadata.name   #Pod名称
        imagePullPolicy: Always          #拉取镜像(总是拉取镜像)
        ports:
        - name: nginx                  #SVC_名称,并且在pod中是唯一的(与svc的ports名称必须对应)
          containerPort: 80              #容器开放的监听端口
        resources:                       #资源
          limits:                        #限制
            memory: 500Mi
            cpu: 200m                    #0.2代表200m
          requests:                      #请求
            memory: 250Mi
            cpu: 100m                    #0.1代表100m
      restartPolicy: Always              #重新启动pod中所有容器的策略
---
apiVersion: v1
kind: Service                   #控制器
metadata:
  labels:
    app: nginx          #svc的标签名称
  name: nginx                   #svc名称
spec:
  ports:
  - name: nginx         #服务中此端口的名称。这必须是DNS标签全部ServiceSpec中的端口必须具有唯一的名称(与Pod的ports名称必须对应)
    # 默认情况下,为了方便起见,`targetPort` 被设置为与 `port` 字段相同的值。
    port: 80                    #Port 的请求端口
    protocol: TCP               #TCP协议
    targetPort: 80              #请求代理到使用TCP端口80,并且具有标签"app=nginx" 的Pod上,默认情况下,targetPort 将被设置为与 port 字段相同的值。
    nodePort: 30080             #宿主机暴露的服务端口,默认情况下随机分配一个端口号(默认:30000-32767)
  selector:
    app: nginx                #具有标签"app=nginx" 的Pod加入到该svc中
  type: NodePort                #对外集群的外部访问

二、生成资源清单

kubectl  apply -f deployment_shoudongpha.yaml

在这里插入图片描述

三、手动扩容/缩容

扩容:

kubectl  scale  deployment  --replicas=9 nginx

在这里插入图片描述

缩容:

kubectl  scale  deployment  --replicas=3 nginx

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值