kubernets升级策略以及版本控制

前言

主要聊一聊k8s 主要升级策略和版本控制,使用Deployment控制器 升级

设置记录版本

nginx-rep.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  revisionHistoryLimit: 4
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

升级策略

可在 Deployment.spec.strategy 中设置

升级策略有两种

  • Recreate:立刻升级,终端所有服务,升级期间服务不可用,适合停机升级
  • RollingUpdate:滚动升级,可以设置升级策略,升级期间服务可用

Recreate

...
spec:
  replicas: 3
  revisionHistoryLimit: 4
  strategy: 
  	type: Recreate
  selector:
    matchLabels:
      app: nginx
  template:
...

  • 测试
kubectl apply -f nginx-rep.yaml
# 查看,全部服务立刻升级
kubectl get pod 

RollingUpdate

...
spec:
  replicas: 3
  revisionHistoryLimit: 4
  strategy: 
  	type: rollingUpdate
  		maxSurge: 10  #最大增量
  		 maxUnavailable:2 #最大不可用
    selector:
    matchLabels:
      app: nginx
  template:
...

  • 测试
kubectl apply -f nginx-rep.yaml
# 查看,全部服务立刻升级
kubectl get pod 

版本不叠加更新

升级服务过程中,可能要经过多个中间过程,但是不想在中间过程产生新的版本记录,升级完成后只生成一个版本记录。

#暂停记录版本
kubectl rollout pause deployment.v1.apps/nginx-deployment

#中间多次操作...

#看看历史版本,没有变化
kubectl rollout history deployment.v1.apps/nginx-deployment

#让多次累计生效
kubectl rollout resume deployment.v1.apps/nginx-deployment
# 查看
kubect get pod

最后执行后看到本版进行了升级,生成版本记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值