我有一个 k3s ( v1.21.1
+ k3s1
) 集群,其中包含以下 pod:
kube-system pod/calico-node-xxxx
kube-system pod/calico-kube-controllers-xxxxxx
kube-system pod/metrics-server-xxxxx
kube-system pod/local-path-provisioner-xxxxx
kube-system pod/coredns-xxxxx
kubectl
我如何使用命令(可能)或任何脚本重新启动(停止并再次启动)pod ?
答案1
Kubernetes 不支持停止/暂停 Pod 的当前状态。但是,您可以使用以下命令执行 / 的推出重启(Deployment
请参阅:DaemonSet
kubectl rollout restart
Kubectl 参考文档)。
要重新启动命名空间中的Deployments
所有,可以使用以下命令:DaemonSets
kube-system
# kubectl -n kube-system rollout restart daemonsets,deployments
daemonset.apps/calico-node restarted
deployment.apps/local-path-provisioner restarted
deployment.apps/coredns restarted
deployment.apps/metrics-server restarted
deployment.apps/calico-kube-controllers restarted
您可能从上面的输出中注意到,calico-node
是一个DaemonSet
,其余的 Pod 由 管理Deployments
。
如果需要,您可以重新启动特定的Deployment
/ Daemonset
:
# kubectl -n kube-system rollout restart deployment metrics-server
deployment.apps/metrics-server restarted
# kubectl get pod -n kube-system | grep metrics-server
metrics-server-6bd8786b6c-74qlt 1/1 Running 0 2s
metrics-server-647d5b4475-ch9zj 1/1 Terminating 0 28s