Kubernetes(K8s) kubectl rolling-update 常用命令

Kubernetes(K8s)中使用Kubectl 命令行工具管理 Kubernetes 集群。 kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。 可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指定其它 kubeconfig 文件。本文主要介绍Kubernetes(K8s)中kubectl rolling-update 常用命令。

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需要确保新的版本有不同的nameVersionlabel,否则会报错 。

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
推荐阅读
cjavapy编程之路首页