背景構成センターの問題:configmap や secret オブジェクトなどのクラウド ネイティブの構成センターでは、リソース オブジェクトを直接更新できます。
方向:Configmap または Secret を使用するには、env システム変数に値を割り当てる方法と、ボリュームマウントに値を割り当てる方法の 2 つの方法があります。 env によってシステムに書き込まれた configmap はホット アップデートされませんが、ボリューム書き込み方式ではホット アップデートがサポートされます。
解決ConfigMap と Secret は、Kubernetes が構成データを保存するためによく使用するオブジェクトです。ニーズに応じて適切なオブジェクトを選択してデータを保存できます。 Volume 経由で Pod にマウントされ、kubelet によって定期的に更新されます。ただし、環境変数を通じてコンテナに注入されるため、ConfigMap や Secret の内容の更新は認識できません。 現在、Pod 内のビジネスに ConfigMap または Secret の変更を認識させる方法は、まだ解決されていない問題です。しかし、まだいくつかの回避策があります。 ビジネス自体が nginx -s reload などのリロード構成をサポートしている場合は、inotify を通じてファイルの更新を検出したり、定期的にリロードを実行したりできます (これは、readinessProbe と組み合わせて使用できます)。 私たちのビジネスにこの機能がない場合、不変のインフラストラクチャの考え方を考慮して、ローリング アップグレード アプローチを採用できますか?はい、これは非常に良い方法です。現在、このアプローチを使用する Reloader と呼ばれるオープンソース ツールがあります。 ConfigMap と Secret を監視することで、オブジェクトの更新が見つかると、Deployment や StatefulSet などのワークロード オブジェクトのローリング アップグレードが自動的にトリガーされます。 リローダーの紹介リローダーの紹介:Reloader は、ConfigMap と Secret の変更を監視し、関連する deployconfiggs、deploymentconfiggs、deploymonset、statefulset を通じて Pod のローリング アップグレードを実行できます。 リローダーのインストール:helmのインストール: カスタマイズ: リソース リストのインストール: 構成を無視: リーダー デプロイで spec.template.spec.containers.args を構成することにより、リローダーが cm または secrets リソースを無視するように構成できます。両方とも無視される場合は、デプロイを 0 に減らすか、リローダーをデプロイしないでください。
構成:自動更新: reloader.stakater.com/search と reloader.stakater.com/auto は連携して動作しません。デプロイメントに reloader.stakater.com/auto : " true " アノテーションがある場合、そのリソースによって参照されるすべての configmap またはシークレットを変更すると、 reloader.stakater.com/match : " true " アノテーションがあるかどうかに関係なく、そのリソースが再起動されます。 開発アップデート: 特定の configmap または secret を指定すると、指定した configmap または secret が変更された場合にのみローリング アップグレードがトリガーされるため、デプロイメント、バックエンド ログイン、または状態設定で使用されるすべての configmap または secret のローリング アップグレードはトリガーされません。 構成マップまたはシークレットを指定するデプロイメント リソース オブジェクトは、reloader.stakater.com/match: "true" が true の場合にのみ更新されます。 false またはマークされていない場合、リソース オブジェクトは構成の変更を監視せず、再起動します。 cm構成: cm を指定: デプロイメントが複数の CMS とともにマウントされている場合、または特定の CMS のみを更新するシナリオでは、デプロイメントはロールオーバーされ、デプロイメントを更新せずに他の CMS が更新されます。このシナリオでは、cm はデプロイメント内の単一の cm またはリストとして指定できます。 たとえば、デプロイには nginx-cm1 と nginx-cm2 の 2 つの configmap がマウントされています。 nginx-cm1 が更新されたときにのみデプロイでローリング アップデートを実行する場合は、2 つの cms でアノテーションを構成する必要はありません。デプロイでは configmap.reloader.stakater.com/reload:nginx-cm1 と記述するだけです。 nginx-cm1 が更新されると、デプロイによってローリング アップデートがトリガーされます。 複数の cm を区切る場合は、カンマを使用します。 cm または secret に注釈を追加する必要はなく、参照リソース オブジェクトに注釈を追加するだけです。 テスト検証展開する: 設定マップ: テスト: 予防
反射Reloader は ConfigMap と Secret を監視し、オブジェクトが更新されたことを検出すると、Deployment や StatefulSet などのワークロード オブジェクトのローリング アップグレードを自動的にトリガーします。 アプリケーションが構成ファイルをリアルタイムで監視しない場合は、この方法を使用して構成のホット アップデートを簡単に実装できます。 |
<<: Kubernetes v1.30 が利用可能になりました!
>>: パブリック クラウドの弾力性を活用するのが難しいのはなぜですか?
A2hosting、ブラックフライデーがやって来ました! SSD ハード ドライブを搭載した仮想ホス...
[51CTO.com オリジナル記事] 2017年、中国のゲーム市場の収益は2,189億ドルに達した...
他の大規模な IT 変更と同様に、ハイブリッド クラウド モデルを導入するには、企業がセキュリティ対...
主人公が戻ってきました。chicagovps のボスの誕生日です。512M メモリの openvz ...
この記事では、インジケーターとログのサポートについて紹介します。索引メトリクスにより、アプリのパフォ...
9月25日午後、蘇寧ドットコムが業界の合併や買収を行うという噂がついに決着した。蘇寧ドットコムは本日...
1. Baidu が Aibang.com を買収すると報じられているが、Aibang.com はコ...
北京ニュース(劉霞記者)「今後5年間で大きな発展を遂げるが、BATはそれを成し遂げない」とは何だろう...
百度は今年6月22日に大規模なK-upサイトを開始し、大手ウェブマスターを困惑させた。今のところ、百...
Alphavps はブルガリアでは本当に古いブランドであり、2018 年のブラック フライデーには ...
馬華クラウドは、国慶節の休暇中にスーパープロモーションを実施します:(1)香港クラウドサーバー(CN...
1. 概要通常、分散ストレージ システムと分散キャッシュ システムでは、データの分割 (ルーティング...
cheapvpsllc は新しくオープンした VPS ビジネスですが、そのボスである Brian は...
SEO 最適化のプロセスで、多くの人が「検索エンジンはどのようなタイトルを求めているのか?」という問...
さらに読む: LeTVの株価は取引再開後に一日の上限に達する:コンテンツポジショニング戦略が好まれる...