今回はkubernetesにおける、Podの再起動方法についてです。
deploymentを更新したときは自動的にPodが生まれ変わりますが、
configmapやsecretのみを更新した場合に、「あれーPod情報が古いままだよ〜」
なんてことが慣れないうちは起こりがちです。
deleteコマンドでPodを1個づつ削除してもあげても良いのですが、
1個や1個ならまだしも、50000個くらいあった場合はとても大変なわけなのです。
そんなわけでconfigmapやsecretやらのみの更新の場合には、下記のコマンドを使うのが良いかなと思った次第でございます。
kubectl rollout restart deploy [対象のdeployment名]
$ kubectl rollout restart deploy tomato
deployment.extensions/tomato restarted
$ kubectl get po
tomato-5867754db-nthxw 1/1 Running 0 13s
tomato-696dd46f79-bcxh9 1/1 Terminating 0 5d23h
新しいPodがRunningになると、古いPodがTerminatingになり、
ダウンタイムなしで再起動してくれます。
対象となるdeployment名の一覧については、下記のコマンドで事前に確認しておきましょう。
kubectl get deploy
ではまた🙋♂️
さいごに
ZEROBILLBANKでは一緒に働く仲間を募集中です。
なんとかjsとか、ブロックチェーンとか、kubernetesとかでいろんなAPIを作るお仕事。
今のところエンジニアは5人くらい。スタートアップだけど、結構ホワイトで働きやすいです。