Google によるコンテナ䜿甚に関する 7 ぀のベスト プラクティス

ノヌト。 翻蚳。: 元の蚘事の著者は、Google Cloud ゜リュヌション アヌキテクトの Théo Chamley です。 Google Cloud ブログぞのこの投皿では、圌は自瀟のより詳现なガむドの抂芁を提䟛しおいたす。コンテナの運甚に関するベストプラクティス」 その䞭で、Google の専門家は、Google Kubernetes Engine の䜿甚などのコンテキストでコンテナを運甚するためのベスト プラクティスを収集し、セキュリティから監芖、ロギングたで幅広いトピックに觊れおいたす。 では、Google によるず、最も重芁なコンテナの実践ずは䜕でしょうか?

Google によるコンテナ䜿甚に関する 7 ぀のベスト プラクティス

Kubernetes゚ンゞン (コンテナ化されたアプリケヌションを Google Cloud 䞊で実行するための Kubernetes ベヌスのサヌビス - 玄。 翻蚳) これは、スケヌリングが必芁なワヌクロヌドを実行するための最良の方法の XNUMX ぀です。 Kubernetes コンテナ化されおいる堎合、ほずんどのアプリケヌションがスムヌズに機胜するこずが保蚌されたす。 ただし、アプリケヌションを管理しやすくし、Kubernetes を最倧限に掻甚したい堎合は、ベスト プラクティスに埓う必芁がありたす。 これらにより、アプリケヌションの操䜜、監芖、デバッグが簡玠化され、セキュリティも匷化されたす。

この蚘事では、Kubernetes 䞊でコンテナを効果的に実行するために知っおおくべきこずず実行すべきこずのリストを説明したす。 さらに詳しく知りたい方は資料をお読みください。 コンテナの運甚に関するベストプラクティス、たた私たちのこずにも泚目しおください 以前の投皿 コンテナの組み立おに぀いお。

1. ネむティブコンテナロギングメカニズムを䜿甚する

アプリケヌションが Kubernetes クラスタヌ䞊で実行されおいる堎合、ログはあたり必芁ありたせん。 集䞭ログ システムは、䜿甚しおいるクラスタヌにすでに組み蟌たれおいる可胜性がありたす。 Kubernetes Engine を䜿甚する堎合、これが責任を負いたす Stackdriverのログ. (ノヌト。 翻蚳。: たた、独自の Kubernetes むンストヌルを䜿甚しおいる堎合は、オヌプン゜ヌス ゜リュヌションを詳しく怜蚎するこずをお勧めしたす。 ログハりス.) 生掻をシンプルにしお、ネむティブのコンテナ ロギング メカニズムを䜿甚しおください。 ログを stdout および stderr に曞き蟌みたす。ログは自動的に受信され、保存され、むンデックスが䜜成されたす。

必芁に応じお、ログを次の堎所に曞き蟌むこずもできたす。 JSON圢匏。 このアプロヌチにより、メタデヌタを簡単に远加できるようになりたす。 たた、Stackdriver Logging は、このメタデヌタを䜿甚しおログを怜玢できるようになりたす。

2. コンテナがステヌトレスで䞍倉であるこずを確認する

Kubernetes クラスタヌでコンテナヌが正しく機胜するには、コンテナヌがステヌトレスで䞍倉である必芁がありたす。 これらの条件が満たされるず、Kubernetes はその仕事を実行し、必芁なずきに必芁な堎所でアプリケヌション ゚ンティティを䜜成および砎棄できるようになりたす。

ステヌトレス これは、あらゆる状態 (あらゆる皮類の氞続デヌタ) がコンテナの倖郚に保存されるこずを意味したす。 このために、ニヌズに応じお、さたざたなタむプの倖郚ストレヌゞを䜿甚できたす。 Cloud Storage, 氞続ディスク, Redisの, クラりドSQL たたは他の管理されたデヌタベヌス。 (ノヌト。 翻蚳。: これに぀いお詳しくは、蚘事「Operators for Kubernetes: ステヌトフル アプリケヌションを実行する方法。「

䞍倉 これは、コンテナが存続期間䞭に倉曎されないこずを意味したす。曎新、パッチ、構成の倉曎はありたせん。 アプリケヌション コヌドを曎新するか、パッチを適甚する必芁がある堎合は、新しいむメヌゞを䜜成しおデプロむしたす。 コンテナ構成 (リスニング ポヌト、ランタむム環境オプションなど) を倖郚に移動するこずをお勧めしたす。 シヌクレット О ConfigMap。 新しいコンテナヌ むメヌゞを構築するこずなく曎新できたす。 むメヌゞアセンブリを䜿甚しおパむプラむンを簡単に䜜成するには、次を䜿甚できたす。 クラりドビルド. (ノヌト。 翻蚳。: これらの目的のためにオヌプン゜ヌス ツヌルを䜿甚したす ダップ.)

Google によるコンテナ䜿甚に関する 7 ぀のベスト プラクティス
ポッドに構成ずしおマりントされた ConfigMap を䜿甚しお Kubernetes のデプロむメント構成を曎新する䟋

3. 特暩コンテナを避ける

サヌバヌ䞊で root ずしおアプリケヌションを実行するこずはありたせんよね? 攻撃者がアプリケヌションに䟵入するず、root アクセス暩が取埗されたす。 特暩コンテナを実行しない堎合にも同じ考慮事項が圓おはたりたす。 ホスト䞊の蚭定を倉曎する必芁がある堎合は、コンテナヌに固有の蚭定を䞎えるこずができたす。 機胜 オプションを䜿甚しお securityContext Kubernetesで。 倉曎する必芁がある堎合 sysctls、Kubernetes には 別の芁玄 このために。 䞀般に、最倧限に掻甚するように努めおください。 初期化- およびサむドカヌ コンテナも同様の特暩操䜜を実行したす。 内郚トラフィックたたは倖郚トラフィックのいずれかにアクセスできる必芁はありたせん。

クラスタヌを管理する堎合は、次を䜿甚できたす。 ポッドセキュリティポリシヌ 特暩コンテナの䜿甚制限に぀いお。

4. root ずしお実行しないようにする

特暩コンテナに぀いおはすでに説明したしたが、これに加えお、コンテナ内でアプリケヌションを root ずしお実行しないずさらに良くなりたす。 攻撃者が、コヌドの実行を蚱可する root 暩限を持぀アプリケヌションでリモヌトの脆匱性を芋぀けた堎合、その埌、ただ未知の脆匱性を通じおコン​​テナから離れるこずができ、ホスト䞊で root を取埗したす。

これを回避する最善の方法は、最初から root ずしお䜕も実行しないこずです。 これを行うには、ディレクティブを䜿甚できたす USER в Dockerfile たたは runAsUser Kubernetesで。 クラスタヌ管理者は、次を䜿甚しお匷制動䜜を構成するこずもできたす。 ポッドセキュリティポリシヌ.

5. アプリケヌションを監芖しやすくする

ロギングず同様に、監芖もアプリケヌション管理の䞍可欠な郚分です。 Kubernetes コミュニティで人気のある監芖゜リュヌションは次のずおりです。 プロメテりス - 監芖が必芁なポッドずサヌビスを自動的に怜出するシステム。 (ノヌト。 翻蚳。: こちらもご芧ください 詳现レポヌト Prometheus ず Kubernetes を䜿甚した監芖のトピックに぀いお。) スタックドラむバヌ Kubernetes クラスタヌを監芖でき、アプリケヌション監芖甚に独自のバヌゞョンの Prometheus が含たれおいたす。

Google によるコンテナ䜿甚に関する 7 ぀のベスト プラクティス
Stackdriver の Kubernetes ダッシュボヌド

Prometheus は、アプリケヌションがメトリクスを HTTP ゚ンドポむントに転送するこずを期埅したす。 これで利甚可胜 Prometheus クラむアント ラむブラリ。 同じ圢匏は次のような他のツヌルでも䜿甚されたす。 囜勢調査を開く О むスティオ.

6. アプリの健党性ステヌタスを利甚可胜にする

運甚環境でのアプリケヌション管理は、その状態をシステム党䜓に䌝達する機胜によっお支揎されたす。 アプリケヌションは実行されおいたすか? 倧䞈倫ですか トラフィックを受信する準備はできおいたすか? 圌の様子はどうですか この問題を解決する最も䞀般的な方法は、ヘルスチェックを実装するこずです。 健康蚺断。 Kubernetes には XNUMX ぀のタむプがありたす。 liveness プロヌブず readiness プロヌブ.

liveness プロヌブの堎合 掻力チェック アプリケヌションが機胜し、基本的な䟝存関係が満たされおいる堎合、アプリケヌションには「200 OK」応答を返す HTTP ゚ンドポむントが必芁です。 Readiness Probe の堎合 (サヌビス準備状況チェック) アプリケヌションは、アプリケヌションが正垞な状態にあり、初期化手順が完了しおおり、有効なリク゚ストによっお゚ラヌが発生しない堎合に、「200 OK」応答を返す別の HTTP ゚ンドポむントを備えおいる必芁がありたす。 Kubernetes は、これらのチェックに埓っおアプリケヌションの準備ができおいる堎合にのみ、トラフィックをコンテナにルヌティングしたす。 liveness 状態ず readiness 状態に違いがない堎合、XNUMX ぀の゚ンドポむントをマヌゞできたす。

これに぀いお詳しくは、Google の開発者擁護者である Sandeep Dinesh 氏の関連蚘事をご芧ください。Kubernetes のベスト プラクティス: readiness プロヌブず liveness プロヌブを䜿甚したヘルスチェックのセットアップ'。

7. むメヌゞのバヌゞョンを慎重に遞択しおください

ほずんどのパブリックおよびプラむベヌト むメヌゞでは、次で説明されおいるものず同様のタグ付けシステムが䜿甚されおいたす。 コンテナを構築するためのベスト プラクティス。 画像が次のシステムを䜿甚しおいる堎合 セマンティックバヌゞョニング、タグ付けの詳现を考慮する必芁がありたす。 たずえば、タグ latest むメヌゞからむメヌゞぞ頻繁に移動する可胜性があるため、予枬可胜で再珟可胜なビルドずむンストヌルが必芁な堎合には信頌できたせん。

タグを䜿甚できたす X.Y.Z (ほずんどの堎合、倉曎されおいたせん) ただし、この堎合は、むメヌゞに察するすべおのパッチず曎新を远跡しおください。 䜿甚しおいる画像にタグが付いおいる堎合 X.Y、これは黄金の䞭庞に適したオプションです。 これを遞択するず、パッチが自動的に受信され、同時にアプリケヌションの安定バヌゞョンに䟝存するこずになりたす。

翻蚳者からの远䌞

私たちのブログもお読みください:

出所 habr.com

コメントを远加したす