時々忘れてしまいますが、KubernetesのDockerコンテナを再起動する方法はないです。
kubectl scale deploymentのreplica数を0にし、また元の数に戻すやり方を使います。
- replicaの数を0にする
kubectl scale deployment [Deployment Name] --replicas=0 -n [Namespace]
deployment.extensions/[Deployment Name] scaled
- podの数が0になっていることを確認
kubectl get pods -n [Namespace]
No resources found.
- replicaの数を1にする
kubectl scale deployment [Deployment Name] --replicas=1 -n [Namespace]
deployment.extensions/[Deployment Name] scaled
- podの数が1になっていることを確認
kubectl get pods -n [Namespace]
NAME READY STATUS RESTARTS AGE
[Deployment Name-ID] 1/1 Running 0 64s
追記(2020.1.28)
Kubernetes Ver.1.15から、Deploymentリソースに関してrollout restartで再起動が出来るようになりました。使い方は以下です。
kubectl rollout restart deployments/[Name] --n [Namespace]
Describeしてみると、restartコマンドの中身はScale down->Scale upであることが分かります。
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 13s deployment-controller Scaled up replica set [Deployment Name-ID] to 1
Normal ScalingReplicaSet 12s deployment-controller Scaled down replica set [Deployment Name-ID] to 0