栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

K8s系列之:Pod的升级和回滚

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

K8s系列之:Pod的升级和回滚

K8s系列之:Pod的升级和回滚

一、Deployment的升级二、Deployment更新Pod流程
当集群中的某个服务需要升级时,需要停止目前与该服务相关的所有Pod,然后下载新版本镜像并创建新的Pod。集群规模比较大,需要先全部停止然后逐步升级的方式会导致较长时间的服务不可用。K8s提供了滚动升级功能来解决上述问题。

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

一、Deployment的升级

以Deployment nginx为例:
nginx-deployment.yaml

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

已运行的Pod副本数量有3个:

kubectl get pods
NAME              READY     STATUS     RESTARTS      AGE
nginx-deployment-4087004473-9jqqs  1/1  Running  0   1m
nginx-deployment-4087004473-cq0cf  1/1  Running  0   1m
nginx-deployment-4087004473-vxn56  1/1  Running  0   1m

现在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

另一种更新的方法是使用kubectl 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

查看当前运行的Pod,名称已经更新了

kubectl get pods

查看Pod使用的镜像,已经更新为Nginx:1.9.1了:

kubectl describe pod/nginx-deployment-3599678771-s8p21
二、Deployment更新Pod流程

使用kubectl describe deployments/nginx-deployment命令仔细观察Deployment的更新过程。

初始创建Deployment时,系统创建了一个ReplicaSet,并按用户的需求创建了3个Pod副本。当更新Deployment时,系统创建了一个新的ReplicaSet,并将其副本数扩展到1,然后将旧的ReplicaSet缩减为2系统继续按照相同的更新策略对新旧两个ReplicaSet进行逐个调整。最后,新的ReplicaSet运行了3个新版本Pod副本,旧的ReplicaSet副本数则缩减为0。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/724991.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号