天天看点

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

文章目录

  • 1.创建Deployment
  • 2. 更新Deployment
    • 2.1 使用set image更新
    • 2.2 使用kubectl edit更新
  • 3. 暂停/重启Deployment跟新
  • 4. 回滚Deployment
    • 4.1 查看升级历史
    • 4.2 回滚到上个版本
    • 4.3 回滚到指定版本
  • 5 扩容(增加副本数)

Deployment是⼀个⽐RS应⽤模式更⼴的API对象,可以是创建⼀个新的服务,更新⼀个新的服务,也可以是滚动升级⼀个服务。滚动升级⼀个服务。

实际是创建⼀个新的RS,然后逐渐将新RS中副本数增加到理想状态,将旧RS中的副本数减少到0的复合操作;这样⼀个复合操作⽤⼀个RS是不太好描述的,所以⽤⼀个更通⽤的Deployment来描述。

1.创建Deployment

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3		# 创建副本个数
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image:  docker.io/nginx:1.7.9
        imagePullPolicy: IfNotPresent  
        ports:
        - containerPort: 80
          protocol: TCP
           

查看deployments 创建过程

kubectl get deployments -w

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

2. 更新Deployment

Deployment 的 rollout 当且仅当 Deployment 的 pod template(例如

.spec.template

)中的

label

更新或者镜像更改时被触发。其他更新,例如扩容 Deployment 不会触发 rollout。

2.1 使用set image更新

kubectl set image deployment/nginx nginx=nginx:1.9.1

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

2.2 使用kubectl edit更新

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

查看rollout 状态:

kubectl rollout status deployment/nginx

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

3. 暂停/重启Deployment跟新

暂停:

kubectl rollout pause deployment/nginx

重启:

kubectl rollout resume deployment/nginx

【例】:首先暂停deployment/nginx的更新,修改nginx版本号,查看rs发现并没有更新,此时重启deployment/nginx的更新,发现升级正常,通常用于升级过程中发现版本有问题,可暂停更新,重新修改镜像版本,再启用版本更新

更新nginx版本

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

重启nginx版本更新

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

动态查看rs

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

4. 回滚Deployment

4.1 查看升级历史

kubectl rollout history deployment/nginx

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

查看版本详细信息

kubectl rollout history deployment/nginx --revision=1

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)

4.2 回滚到上个版本

kubectl rollout undo deployment/nginx

4.3 回滚到指定版本

kubectl rollout undo deployment/nginx --to-revision=1

5 扩容(增加副本数)

kubectl scale deployment nginx --replicas 5

kubernets(k8s)使用-Deployment1.创建Deployment2. 更新Deployment3. 暂停/重启Deployment跟新4. 回滚Deployment5 扩容(增加副本数)