このページでは、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 ドキュメントの Services をご覧ください。
デプロイによる正常な更新とロールバック: 詳細については、Kubernetes ドキュメントのデプロイのロールバックをご覧ください。
リソースのリクエストと上限を設定する: 詳細については、Kubernetes ドキュメントの Pod とコンテナのリソース管理をご覧ください。