背景简介
在 Kubernetes 中,使用 kubectl rollout restart 命令可重启 StatefulSet 管理的 Pod,命令会触发 StatefulSet 更新,逐个删除并重新创建 Pod,保持有状态应用的稳定性与唯一标识。
环境信息
- Kubernetes 已安装 【Kubernetes - 安装】
详细步骤
第一步: 查看部署信息
- 查看 statefulset
$ kubectl get statefulset -n dev-upgrade
NAME READY AGE
clusteringservice 2/2 18h
elasticsearch-master 2/2 21h
pega-hazelcast 2/2 18h
- 查看 pod
$ kubectl get pod -n dev-upgrade
NAME READY STATUS RESTARTS AGE
clusteringservice-0 1/1 Running 0 7h
clusteringservice-1 1/1 Running 0 7h
dev-pega870pe-kafka-f5b8db5f8-kjhnj 1/1 Running 0 7h3m
dev-pega870pe-zookeeper-848d59d4b7-rqjc8 1/1 Running 0 7h3m
dev-upgrade-batch-79c599fb84-52kfq 1/1 Running 0 57m
dev-upgrade-batch-79c599fb84-pwbdm 1/1 Running 0 58m
dev-upgrade-constellation-767554b58f-6pvhc 1/1 Running 0 7h3m
dev-upgrade-constellation-messaging-5547b9c98b-k4jjr 1/1 Running 0 7h3m
dev-upgrade-db-65b74bcfdf-vvflq 1/1 Running 0 7h3m
dev-upgrade-srs-7c7b45d665-4xr4t 1/1 Running 0 30m
dev-upgrade-web-78dd9968c-8xs6r 1/1 Running 0 64m
dev-upgrade-web-78dd9968c-j78mb 1/1 Running 0 66m
elasticsearch-master-0 1/1 Running 0 7h1m
elasticsearch-master-1 1/1 Running 0 7h1m
pega-hazelcast-0 1/1 Running 0 7h1m
pega-hazelcast-1 1/1 Running 0 7h
第二步: 使用 rollout restart 重启服务
$ kubectl rollout restart statefulset elasticsearch-master -n dev-upgrade
- 重启过程是顺序的,它会等待一个 Pod 成功启动并变为 Ready 状态后,再继续重启下一个 Pod。
$ kubectl get pod -n dev-upgrade
NAME READY STATUS RESTARTS AGE
clusteringservice-0 1/1 Running 0 7h1m
clusteringservice-1 1/1 Running 0 7h1m
dev-pega870pe-kafka-f5b8db5f8-kjhnj 1/1 Running 0 7h4m
dev-pega870pe-zookeeper-848d59d4b7-rqjc8 1/1 Running 0 7h4m
dev-upgrade-batch-79c599fb84-52kfq 1/1 Running 0 58m
dev-upgrade-batch-79c599fb84-pwbdm 1/1 Running 0 59m
dev-upgrade-constellation-767554b58f-6pvhc 1/1 Running 0 7h4m
dev-upgrade-constellation-messaging-5547b9c98b-k4jjr 1/1 Running 0 7h4m
dev-upgrade-db-65b74bcfdf-vvflq 1/1 Running 0 7h4m
dev-upgrade-srs-7c7b45d665-4xr4t 1/1 Running 0 31m
dev-upgrade-web-78dd9968c-8xs6r 1/1 Running 0 65m
dev-upgrade-web-78dd9968c-j78mb 1/1 Running 0 67m
elasticsearch-master-0 1/1 Running 0 7h2m
elasticsearch-master-1 0/1 Init:0/1 0 1s
pega-hazelcast-0 1/1 Running 0 7h2m
pega-hazelcast-1 1/1 Running 0 7h1m
$ kubectl get pod -n dev-upgrade
NAME READY STATUS RESTARTS AGE
clusteringservice-0 1/1 Running 0 7h4m
clusteringservice-1 1/1 Running 0 7h3m
dev-pega870pe-kafka-f5b8db5f8-kjhnj 1/1 Running 0 7h7m
dev-pega870pe-zookeeper-848d59d4b7-rqjc8 1/1 Running 0 7h7m
dev-upgrade-batch-79c599fb84-52kfq 1/1 Running 0 60m
dev-upgrade-batch-79c599fb84-pwbdm 1/1 Running 0 62m
dev-upgrade-constellation-767554b58f-6pvhc 1/1 Running 0 7h7m
dev-upgrade-constellation-messaging-5547b9c98b-k4jjr 1/1 Running 0 7h7m
dev-upgrade-db-65b74bcfdf-vvflq 1/1 Running 0 7h7m
dev-upgrade-srs-7c7b45d665-4xr4t 1/1 Running 0 34m
dev-upgrade-web-78dd9968c-8xs6r 1/1 Running 0 68m
dev-upgrade-web-78dd9968c-j78mb 1/1 Running 0 69m
elasticsearch-master-0 0/1 Running 0 46s
elasticsearch-master-1 1/1 Running 0 2m25s
pega-hazelcast-0 1/1 Running 0 7h5m
pega-hazelcast-1 1/1 Running 0 7h3m
以上便是本文的全部内容,感谢您的阅读,如遇到任何问题,欢迎在评论区留言,我会通过邮件回复。