Pod的升级和回滚(1)

本文介绍了如何使用Kubernetes Deployment进行滚动更新,包括通过`kubectl set image`命令和`kubectledit`命令修改Deployment的镜像。在更新过程中,如果出现错误,可以执行回滚操作恢复之前的版本。更新完成后,使用`kubectl rollout status`命令监控Deployment的状态,确保所有Pod已完成更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pod如果是deployment 创建的,则用户可以在运行时修改deployment的pod定义(spec.template)或镜像名称,并应用到deployment对象上,系统即可完成deployment的自动更新操作。如果在更新过程中发生了错误,则还可以通过回滚(rollback)操作恢复pod的版本

1.Deployment的升级

nginx-deployment.yaml
apiVersion: apps/v1betal
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    metada: 
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

运行的副本数有3个

现在pod的镜像需要更新为Nginx:1.9.1,我们可以通过kubectl set image 命令为Deployment 设置新的镜像名称

$ kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1

deployment "nginx-deployment" image updated

另外一种方法是使用kubect edit 命令修改Deployment 的配置,将spec.template.spec.containers[0].image 从Nginx:1.7.9更改为Nginx:1.9.1

$ kubectl edit deployment/nginx-deployment 

deployment "nginx-deployment" edited

一旦镜像名(或pod定义)发生修改,则将触发系统完成Deployment所有运行pod的滚动升级操作。可以使用kubectl  rollout  status 命令查看Deployment的更新过程:

$ kubectl rollout status deployment/nginx-deployment

查看当前kubectl get pods ,已经完成更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值