1、Kubectl语法
kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
kubectl rolling-update:执行指定ReplicationController
的滚动更新。该命令创建了一个新的RC, 然后一次更新一个pod方式逐步使用新的PodTemplate
,最终实现Pod滚动更新,new-controller.json
需要与之前RC在相同的namespace
下。rolling-update
是一个非常重要的命令,对于已经部署并且正在运行的业务,rolling-update
提供了不中断业务的更新方式。rolling-update
每次起一个新的pod,等新pod完全起来后删除一个旧的pod,然后再起一个新的pod替换旧的pod,直到替换掉所有的pod。rolling-update
需要确保新的版本有不同的name
,Version
和label
,否则会报错 。
2、kubectl命令中的简写
kubectl命令中可以使用的缩写,具体如下:
certificatesigningrequests (缩写 csr) componentstatuses (缩写 cs) configmaps (缩写 cm) customresourcedefinition (缩写 crd) daemonsets (缩写 ds) deployments (缩写 deploy) endpoints (缩写 ep) events (缩写 ev) horizontalpodautoscalers (缩写 hpa) ingresses (缩写 ing) limitranges (缩写 limits) namespaces (缩写 ns) networkpolicies (缩写 netpol) nodes (缩写 no) persistentvolumeclaims (缩写 pvc) persistentvolumes (缩写 pv) poddisruptionbudgets (缩写 pdb) pods (缩写 po) podsecuritypolicies (缩写 psp) replicasets (缩写 rs) replicationcontrollers (缩写 rc) resourcequotas (缩写 quota) serviceaccounts (缩写 sa) services (缩写 svc) statefulsets (缩写 sts) storageclasses (缩写 sc)
3、kubectl rolling-update 命令
1)使用rolling-update通过yaml文件更新
kubectl rolling-update rc-nginx-2 -f rc-nginx.yaml
2)更新出问题回滚到前面版本
kubectl rolling-update rc-nginx-2 —rollback
3)使用frontend-v2.json中的新RC数据更新frontend-v1的pod
kubectl rolling-update frontend-v1 -f frontend-v2.json
4)使用JSON数据更新frontend-v1的pod
cat frontend-v2.json | kubectl rolling-update frontend-v1 -f -
5)配置文件滚动升级
kubectl rolling-update redis-master -f redis-master-controller-v2.yaml
6)pod版本升级
kubectl rolling-update redis-master --image=redis-master:2.0
7)pod版本回滚
kubectl rolling-update redis-master --image=redis-master:1.0 --rollback