概要
GKE on AWS は、Google Kubernetes Engine(GKE)を Amazon Web Services(AWS)に拡張するハイブリッド クラウド ソフトウェアです。
GKE on AWS では、Elastic Compute Cloud(EC2)、Elastic Block Storage(EBS)、Elastic Load Balancer(ELB) などの標準 AWS リソースを使用します。
GKE on AWS によって作成されるほとんどの AWS リソースには、gke-
で始まる名前が付けられています。
アーキテクチャ
GKE on AWS には 2 つのコンポーネントがあります。
- 管理サービス。ユーザー クラスタのインストールと更新ができる環境です。AWS API を使用してリソースをプロビジョニングします。
- ユーザー クラスタ。ワークロードを実行します。
このトピックでは、Anthos 管理サービスとユーザー クラスタの目的とシェイプについて説明します。
管理サービス
管理サービスは、GKE on AWS のインストール時にコンポーネントを提供、管理します。たとえば、管理サービスを使用してユーザー クラスタを作成します。管理サービスは、AWS API を使用してリソースをプロビジョニングします。
管理サービスは、専用の AWS VPC または既存の AWS VPC で作成できます。
GKE on AWS を実行する AWS Virtual Private Cloud(VPC)ごとに、管理サービスが必要です。管理サービスは単一の AWS アベイラビリティ ゾーンにインストールされます。VPC ごとに必要な管理サービスは 1 つのみです。1 つの管理サービスで複数のユーザー クラスタを管理できます。
管理サービスの主なコンポーネントはクラスタ オペレータです。クラスタ オペレータは、AWSCluster と AWSNodePool を作成および管理する Kubernetes オペレータです。クラスタ オペレータは、AWS EBS ボリュームでストレージが永続化された etcd データベースに構成を保存します。
管理サービスのインストールと構成
このセクションでは、管理サービスを管理するために使用できるツールについて説明します。
anthos-gke ツール
クラスタの作成と管理には anthos-gke
コマンドライン ツールを使用します。詳しくは、anthos-gke ツールをご覧ください。
Connect
Connect を使用すると、Google Cloud コンソールと同じインターフェースから GKE on AWS と Google Cloud 上の GKE クラスタを表示してログインできます。すべてのリソースが 1 つのダッシュボードに表示されるため、複数の Kubernetes クラスタにまたがってワークロードを可視化できます。
ユーザー クラスタ
ユーザー クラスタには、次の 2 つのコンポーネントが含まれます。これらは、管理サービスでホストされる Kubernetes カスタム リソースです。
- コントロール プレーン。
- 1 つ以上の AWSNodePool。
AWSCluster
AWSCluster は単一の VPC で実行されます。
専用 VPC に管理クラスタをインストールすると、GKE on AWS は、dedicatedVPC.availabilityZones
で指定したすべてのゾーンにコントロール プレーンのレプリカを作成します。管理クラスタを既存のインフラストラクチャにインストールすると、GKE on AWS は、同じアベイラビリティ ゾーン内に 3 つのコントロール プレーン レプリカが存在する AWSCluster を作成します。各レプリカは、独自の AWS Auto Scaling グループに属し、終了時にインスタンスを再起動します。
管理サービスによって、コントロール プレーンが AWS ネットワーク ロードバランサ(NLB)の背後のプライベート サブネットに配置されます。管理サービスは、NLB を使用してコントロール プレーンと通信します。
複数の AWS アベイラビリティ ゾーンにまたがるコントロール プレーンを作成する場合は、高可用性ユーザー クラスタをご覧ください。
各コントロール プレーンでは、ローカル etcd データベース内に構成を保存します。こうしたデータベースはレプリケートされ、スタックされた高可用性トポロジで設定されます。
1 つのコントロール プレーンで 1 つ以上の AWSNodePool が管理されます。
AWSNodePool
AWSNodePool は Google Cloud 上の GKE ノードプールと同様に機能します。ノードプールとは、クラスタ内で同じ構成を持つノードのグループのことです。ノードプールは AWSNodePool リソースを使用し、1 つ以上のノードを含むことができます。各ノードプールは、終了時にインスタンスを再起動する独自の AWS Auto Scaling グループに属します。
トラブルシューティング
AWSCluster と AWSNodePool の Kubernetes イベントを表示すると、GKE on AWS のインストールに関するトラブルシューティングを行えます。詳しくは、トラブルシューティング ガイドを参照してください。
次のステップ
- 踏み台インスタンスを備えた専用 VPC に管理サービスをインストールする。
- 既存の VPC に既存のインフラストラクチャを統合する。