DZone.com Feed 日本語
フォロー
Goでmamoriを使ってKubernetes SecretsとConfigMapsをホットリロード(Pod再起動なし)
Kubernetes上でGoサービスを実行しているなら、その儀式はご存知でしょう。SecretやConfigMapを更新し、その後以下のいずれかを行います。kubectl rollout restart deployment/my-app を実行し、ダウンタイムを受け入れる。
Reloaderをインストールして、Secretが変更されたときにPodを自動的に再起動させる。
Secretをボリュームとしてマウントし、アプリケーションがファイルを再読み込みすることを祈る(ネタバレ:ほとんどのアプリケーションは起動時に一度だけ読み込みます)。これら3つの方法には共通の欠点があります。設定変更を「反映させる」方法は、プロセスを破棄して新しいプロセスを開始することです。ローテーションするデータベースパスワードの場合、それは進行中のすべてのリクエスト、コールドなコネクションプール、そしてレイテンシの急増をすべて破棄して、1つの文字列を変更することになります。