当前位置:  首页>> 技术小册>> Kubernets合辑5-Pod控制器

通过定义 maxsurge 和 maxUnavailable 来实现滚动升级的速度,滚动升级中,可以使用 kubectl rollout pause 来实现暂停。

  1. [root@hdss7-200 deployment]# vim /data/k8s-yaml/base_resource/deployment/nginx-v1.14.yaml
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. name: nginx-deploy
  6. namespace: app
  7. spec:
  8. replicas: 5
  9. selector:
  10. matchLabels:
  11. app: nginx
  12. release: stable
  13. tier: slb
  14. partition: website
  15. strategy:
  16. rollingUpdate:
  17. # 以下两项,控制升级速度
  18. maxSurge: 1
  19. maxUnavailable: 0
  20. template:
  21. metadata:
  22. labels:
  23. app: nginx
  24. release: stable
  25. tier: slb
  26. partition: website
  27. # 修改版本
  28. version: v1.14
  29. spec:
  30. containers:
  31. - name: nginx-pod
  32. # 修改镜像版本
  33. image: harbor.od.com/public/nginx:v1.14
  34. lifecycle:
  35. postStart:
  36. exec:
  37. command:
  38. - /bin/bash
  39. - -c
  40. - "echo 'health check ok!' > /usr/share/nginx/html/health.html"
  41. readinessProbe:
  42. initialDelaySeconds: 5
  43. httpGet:
  44. port: 80
  45. path: /health.html
  46. livenessProbe:
  47. initialDelaySeconds: 10
  48. periodSeconds: 5
  49. httpGet:
  50. port: 80
  51. path: /health.html
  1. [root@hdss7-21 ~]# kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.14.yaml --record=true
  2. [root@hdss7-21 ~]# kubectl get rs -n app -l tier=slb -L version # replicaset 数量增加
  3. NAME DESIRED CURRENT READY AGE VERSION
  4. nginx-deploy-5597c8b45 0 0 0 155m v1.12
  5. nginx-deploy-6bd88df699 0 0 0 154m v1.13
  6. nginx-deploy-7c5976dcd9 5 5 5 83s v1.14
  7. [root@hdss7-21 ~]# kubectl rollout history deployment nginx-deploy -n app # 升级记录
  8. REVISION CHANGE-CAUSE
  9. 1 kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.12.yaml --record=true
  10. 2 kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.13.yaml --record=true
  11. 3 kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.14.yaml --record=true
  1. [root@hdss7-21 ~]# kubectl get pod -n app -l partition=website -L version -w # 逐个滚动升级
  2. NAME READY STATUS RESTARTS AGE VERSION
  3. nginx-deploy-6bd88df699-242fr 1/1 Running 0 152m v1.13
  4. nginx-deploy-6bd88df699-4kj8z 1/1 Running 0 152m v1.13
  5. nginx-deploy-6bd88df699-8j85n 1/1 Running 0 152m v1.13
  6. nginx-deploy-6bd88df699-8pmdg 1/1 Running 0 152m v1.13
  7. nginx-deploy-6bd88df699-n7x6n 1/1 Running 0 152m v1.13
  8. nginx-deploy-7c5976dcd9-ttlqx 0/1 Pending 0 0s v1.14
  9. nginx-deploy-7c5976dcd9-ttlqx 0/1 Pending 0 0s v1.14
  10. nginx-deploy-7c5976dcd9-ttlqx 0/1 ContainerCreating 0 0s v1.14
  11. nginx-deploy-7c5976dcd9-ttlqx 0/1 Running 0 1s v1.14
  12. nginx-deploy-7c5976dcd9-ttlqx 1/1 Running 0 9s v1.14
  13. nginx-deploy-6bd88df699-8pmdg 1/1 Terminating 0 153m v1.13
  14. ......

该分类下的相关小册推荐: