kubernetesでpodをリロードする一番簡単な方法

kubernetesでconfigmap更新したからとか、何かとpodを一斉にリロードしたいときってありますよね?
そんなときは下記のコマンドが便利です。

kubectl set env deploy/${your_deployment_name} RELOAD_DATE="$(date)"

これだけ

envを書き換えてるだけですが、これで全podリロードされます。ただし kubectl rollout undo を使えなくなってしまう点だけ注意が必要です。まー当たり前といえば当たり前ですが。あと元々RELOAD_DATEという環境変数を使ってると上書きされちゃうので別の変数に変えてください。

もし、一気にリロードされるのがいやだって場合はdeploymentに次の設定を入れると良いでしょう。

deployment.yaml
spec:
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 10%
      maxUnavailable: 1

type RoolingUpdateにするとすこじづつアップデートするモードになります。
maxSurgeはどれだけの超過podを許すか。
maxUnavailableは使えなくなるpodの数です。

参考

Force pods to re-pull an image without changing the image tag #33664
Google Container Engineで安定してRolling Updateをさせる設定

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.