kubectlを使ったPodの再作成の方法
目次
概要
例えば、secretを変更した時にPodへ反映させたいというときなどに、KubernetesでPodを再作成したいということがあります。
ここでは、Podを再作成する方法について紹介します。
環境
- kubernetes 1.17
- kubectl 1.17
Podの再作成方法
Podを再作成する方法として簡単なのは、kubectl apply
などで新しい設定でPodを作成するという方法です。
しかし、secretを変更しただけで、kubectl apply
を実行しても、Podのファイルを変更していなければ変更なしと判断されて、何も起きません。
そこで、applyを使うのではなく、replaceを使って次のように実行します。
$ kubectl replace --force -f xxx.yml
replaceに--force
をつけることで、強制的にPodの再作成をすることができます。
また、これ以外にもPodを手動で削除して、Deploymentなどの機能による作成によって、新しいsecretなどの設定を反映させるという方法もあります。
その場合では、最初に次のコマンドでPod名を把握します。
$ kubectl get pods
次に、Pod名を指定してPodを削除します
$ kubectl delete pod Pod名
あとは、Deploymentなどの機能で、自動でPodが再作成されます。再作成されたPodは設定が反映されています。
さいごに
正直、Podの再作成は少し面倒です。
secretなどに設定を書き込み、それをPodで使用するというのはそれほど珍しくないと思うのですが、どうなのでしょうか。
もっと他にいい方法がありそうですが、調べても見つからないので、とりあえずこの方法でやっています。