このページでは、Google Distributed Cloud(GDC)のエアギャップ マルチゾーン ユニバースでアプリケーションのフォールト トレランスを高める Kubernetes コンテナ ワークロード戦略について説明します。GDC は、Google Kubernetes Engine(GKE)上で広く使用され、サポートされている Kubernetes ネイティブのコンテナ アプリケーションをサポートしています。
このページは、組織のアプリケーション ワークロードの作成を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。
HA アプリの Kubernetes に関する考慮事項
Kubernetes で高可用性(HA)を実現するには、コントロール プレーンだけでは不十分です。また、Google Distributed Cloud(GDC)のエアギャップ環境でコンテナ ワークロードを復元力のある方法で設計してデプロイする必要があります。Kubernetes には、インフラストラクチャの問題が発生した場合や定期メンテナンス中であっても、ダウンタイムを最小限に抑え、高可用性サービスを提供するための強力なメカニズムがいくつか用意されています。次のトピックは、HA を検討するうえで重要な戦略です。
レプリカと自動スケーリングで可用性を維持する: HA を提供するには、アプリケーションの実行中のインスタンスが十分に必要です。
ReplicaSet
:ReplicaSet
リソースは、特定の時点で実行される同一の Pod レプリカの安定したセットを維持します。Pod で障害が発生したり、Pod が終了したりすると、ReplicaSet
コントローラが自動的に新しい Pod を作成して置き換えます。詳細については、ReplicaSet Kubernetes のドキュメントをご覧ください。Horizontal Pod Autoscaler(HPA):
ReplicaSet
はレプリカの数を固定しますが、HPA は CPU 使用率やメモリ使用量などのモニタリングされた指標に基づいて、この数を自動的に調整します。これにより、アプリケーションで負荷の急増を処理できます。詳細については、Kubernetes ドキュメントの水平 Pod 自動スケーリングをご覧ください。
PodDisruptionBudget
(PDB)でダウンタイムを最小限に抑える: 詳細については、Kubernetes ドキュメントのアプリケーションの停止予算の指定をご覧ください。アンチ アフィニティ ルールでリスクを分散する: 詳細については、アフィニティとアンチ アフィニティに関する Kubernetes のドキュメントをご覧ください。
liveness プローブ、readiness プローブ、startup プローブを使用したヘルスチェック: 詳細については、Kubernetes ドキュメントの livenessProbe、readinessProbe、startupProbe の構成をご覧ください。
安定したエンドポイントとサービスによるロード バランシング: 詳細については、サービスに関する Kubernetes のドキュメントをご覧ください。
デプロイによる正常な更新とロールバック: 詳細については、Kubernetes ドキュメントのデプロイのロールバックをご覧ください。
リソースのリクエストと上限を設定する: 詳細については、Kubernetes ドキュメントの Pod とコンテナのリソース管理をご覧ください。