1. ホーム
  2. kubernetes

[解決済み] Kubernetesでconfigmapが更新されたらPodを再起動する?

2022-04-15 09:27:31

質問

KubernetesのPodやデプロイメントに関連するPodのconfigmapが変更/更新されたときに、自動的に再起動するにはどうすればよいですか?


設定マップが変更されたときにポッドを自動的に再起動する機能についての話があったことは知っていますが、私の知る限り、これはまだKubernetes 1.2で利用可能ではありません。

そこで、私がやりたい(と思う)ことは、quot;rolling restart"の 配備 リソースは、設定マップを消費するポッドに関連付けられます。Kubernetesで、実際のテンプレートに何も変更を加えることなく、デプロイのローリングリスタートを強制することは可能でしょうか、また可能であればどのように行うのでしょうか?これは現在、それを行うための最良の方法ですか、またはより良いオプションがありますか?

解決方法は?

コンフィグマップ更新時にポッドをシグナリングするのは、現在開発中の機能です( https://github.com/kubernetes/kubernetes/issues/22368 ).

confimapが変更されたことに気づき、アプリを再起動するようなカスタムpid1をいつでも書くことができます。

例えば、2つのコンテナで同じconfig mapをマウントし、config mapのコンテンツのハッシュが変更された場合に失敗するhttpヘルスチェックを2番目のコンテナで公開し、それを最初のコンテナのliveness probeとして押し込むこともできます(Pod内のコンテナは同じネットワークの名前空間を共有しているため)。プローブが失敗すると、kubeletはあなたのために最初のコンテナを再起動します。

もちろん、ポッドがどのノードにあるか気にしないのであれば、ポッドを削除すれば、レプリケーション・コントローラーがポッドを再起動させてくれます。