クラスタ構成の選択肢について


このページでは、Google Kubernetes Engine(GKE)でクラスタを作成する際に選択できる 2 つの運用モードとメインのクラスタ構成について説明します。原則として、ここで説明する選択肢は、クラスタの作成後には変更できません。この選択は、クラスタの可用性バージョンの安定性ネットワークに影響を及ぼします。

このページは、会社の戦略に従って IT ソリューションとシステム アーキテクチャを定義する管理者とアーキテクトを対象としています。Google Cloud のコンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。

ベスト プラクティス:

組織の管理者、アーキテクト、クラウド アーキテクト、ネットワーク管理者、または GKE と Google Cloud のアーキテクチャの定義、実装、メンテナンスを担当する他のチームと協力して、クラスタ構成を計画し、設計します。

クラスタ管理のレベル

クラスタのタイプについて説明する前に、クラスタに必要な柔軟性、権限、管理のレベルを理解することが重要です。必要とする管理レベルによって、GKE で使用する運用モードと、作成する必要があるクラスタ構成が決まります。

運用モード

GKE でクラスタを作成する場合は、次のいずれかの運用モードを使用します。

  • Autopilot: 完全にプロビジョニングされたマネージド クラスタ構成を提供します。Autopilot モードで作成されたクラスタには、クラスタ構成オプションが自動的に作成されます。Autopilot クラスタは、本番環境ワークロードに対応する最適化されたクラスタ構成を使用してあらかじめ構成されています。

  • Standard: クラスタの基盤となるインフラストラクチャに高度な構成の柔軟性を提供します。Standard モードを使用して作成されたクラスタでは、ユーザーが本番環境ワークロードに必要な構成を決定します。

これらのモードの詳細と、Autopilot について詳しくは、Autopilot の概要をご覧ください。

クラスタ構成の選択肢

選択した運用モードに基づいて、クラスタに必要な構成を選択します。Autopilot モードでは、ほとんどの選択肢が自動的に選択されます。Standard モードでは、ユーザーが本番環境ワークロードに最適な構成を選択する必要があります。

クラスタの選択肢 モード
Autopilot Standard
可用性タイプ リージョン リージョンまたはゾーン
バージョン リリース チャンネル リリース チャンネルデフォルト特定
ネットワーク ルーティング VPC ネイティブ VPC ネイティブまたはルートベース
ネットワーク分離 限定公開または一般公開 限定公開または一般公開
Kubernetes の機能 本番環境 本番環境またはアルファ版

クラスタの可用性タイプ

GKE では、ワークロードの可用性要件と予算に合わせてクラスタを作成できます。使用可能なクラスタのタイプには、リージョン クラスタとゾーンクラスタ(シングルゾーンまたはマルチゾーン)があります。

Autopilot モードで作成されたクラスタはリージョンです。

Standard モードで作成するクラスタを選択する方法については、リージョンまたはゾーンのコントロール プレーンの選択をご覧ください。

クラスタの作成後は、それをリージョン クラスタからゾーンクラスタに、またはゾーンクラスタからリージョン クラスタに変更することはできません。変更する場合は、新しいクラスタを作成してトラフィックを移行する必要があります。

リージョン クラスタ

リージョン クラスタには、特定の 1 つのリージョン内の複数ゾーンで動作するコントロール プレーンのレプリカが複数含まれています。リージョン クラスタ内のノードは、構成されたノードのロケーションに応じて、複数のゾーンまたは単一ゾーンで実行できます。デフォルトでは、GKE は各ノードプールをコントロール プレーンのリージョンの 3 つのゾーンに複製します。クラスタを作成するときや新しいノードプールを追加するときに、クラスタのノードが実行されるゾーンを指定してデフォルト構成を変更できます。すべてのゾーンは、コントロール プレーンと同じリージョン内に存在する必要があります。

本番環境ワークロードを実行するには、リージョン クラスタを使用します。リージョン クラスタの方がゾーンクラスタと比較して可用性に優れているためです。

Standard モードでリージョン クラスタを作成するには、リージョン クラスタの作成をご覧ください。

Autopilot モードでリージョン クラスタを作成するには、Autopilot クラスタの作成をご覧ください。

ゾーンクラスタ

ゾーンクラスタには、1 つのゾーン内に 1 つのコントロール プレーンが含まれています。可用性の要件に応じて、ゾーンクラスタのノードを単一のゾーンに分散するか、複数のゾーンに分散するかを選択できます。

Standard モードでゾーンクラスタを作成するには、ゾーンクラスタの作成をご覧ください。

ベスト プラクティス:

本番環境ワークロードには、ゾーンクラスタよりも可用性が高いリージョン クラスタを使用します。開発環境の場合は、ゾーン ノードプールを使用するリージョン クラスタを使用して、同じ費用で運用します。

シングルゾーン クラスタ

シングルゾーン クラスタには、1 つのゾーンで動作する 1 つのコントロール プレーンが含まれています。このコントロール プレーンは、同じゾーンで動作するノード上のワークロードを管理します。ワークロードを単一ゾーンで実行している場合、ゾーンが停止するとこのワークロードは使用できなくなります。

マルチゾーン クラスタ

マルチゾーン クラスタには、1 つのゾーンで動作するコントロール プレーンの 1 つのレプリカと、複数のゾーンで動作する複数のノードが含まれています。クラスタのアップグレード中や、コントロール プレーンが動作するゾーンの停止中にも、ワークロードは動作を継続します。ただし、コントロール プレーンが使用可能になるまでは、クラスタや、その中にあるノードとワークロードを設定できません。マルチゾーン クラスタでは、可用性とコストのバランスをとりながら一貫したワークロードが実現されます。ノードとノードプールの数が頻繁に変化するような環境で可用性を維持する必要がある場合は、リージョン クラスタの使用を検討してください。複数のゾーンでワークロードを実行しているときにゾーンが停止すると、そのゾーンではワークロードが中断されますが、他のゾーンでは引き続き実行を継続できます。

リリース チャンネルとクラスタ バージョン

ベスト プラクティス:

GKE のリリース チャンネルを選択し、機能の可用性と安定性のバランスを考慮してクラスタのバージョンを選択します。メンテナンスの時間枠と除外を使用して、自動アップグレードのタイミングと範囲を制御します。

リリース チャンネルを使用すると、GKE は機能の可用性と安定性のバランスを考慮して、クラスタのバージョンを選択します。クラスタを作成するときに、使用するリリース チャンネルを選択できます。デフォルトでは、すべてのクラスタが Regular リリース チャンネルに登録されます。必要に応じて、特定のバージョンを選択することもできます。

Autopilot クラスタは常にリリース チャンネルを使用します。Standard クラスタはデフォルトでリリース チャンネルを使用しますが、クラスタをリリース チャンネルに登録しないように選択することもできます。

GKE は、リリース チャンネルに登録されているかどうかに関係なく、時間の経過とともにすべてのクラスタを自動的にアップグレードします。そのリリース チャンネルでアップグレードが利用可能になると、GKE は、クラスタのコントロール プレーンとそのノードを自動的にアップグレードします。アップグレードのタイミングと範囲は、メンテナンスの時間枠と除外で制御できます。

今後の自動アップグレードについては、GKE リリースノートをご覧ください。

クラスタのネットワーキング

GKE クラスタを作成するときに、ネットワーク ルーティング モードとクラスタ ネットワークの分離方法を指定できます。

VPC ネイティブ クラスタとルートベース クラスタ

Google Kubernetes Engine では、ある Pod から別の Pod にトラフィックをルーティングする方法によってクラスタを区別できます。エイリアス IP を使用するクラスタは、VPC ネイティブ クラスタと呼ばれています。Google Cloud のルートを使用するクラスタは、ルートベース クラスタと呼ばれています。

詳細については、デフォルトのクラスタ ネットワーク モードのグラフをご覧ください。

ベスト プラクティス:

クラスタに VPC ネイティブ ネットワーク モードを使用します。これは、Autopilot モードで作成されるクラスタのデフォルトでもあります。

ネットワーク分離の選択肢

デフォルトでは、パブリック ネットワークからクラスタのワークロードへのアクセスを設定できます。ルートは自動的には作成されません。限定公開クラスタが Pod とノードに内部アドレスを割り当て、ワークロードがパブリック ネットワークから完全に分離されます。

限定公開クラスタを作成するには、限定公開クラスタの作成をご覧ください。

ベスト プラクティス:

Cloud NAT を使用して、GKE Pod がパブリック IP アドレスでリソースにアクセスできるようにします。Cloud NAT を使用すると、Pod は直接インターネットに公開されませんが、インターネットに接続するリソースにはアクセスできるため、クラスタの全体的なセキュリティ ポスチャーが向上します。

Kubernetes の機能

Kubernetes の新機能は、開発状況に応じてアルファ版、ベータ版、安定版のいずれかで示されます。ほとんどの場合、ベータ版または安定版として表示された Kubernetes 機能が GKE に同梱されます。Kubernetes アルファ版の機能は、特別な GKE アルファ クラスタで使用できます。

アルファ版機能は、Autopilot モードで作成されたクラスタでは使用できません。

アルファ クラスタ

アルファ クラスタでは、すべての Kubernetes アルファ API(機能ゲートともいう)が有効になっています。アルファ クラスタは、Kubernetes 機能の早期テストや検証に使用できます。アルファ クラスタは本番環境ワークロードではサポートされず、アップグレードも行われません。また、30 日以内に期限が切れます。

Standard モードでアルファ クラスタを作成するには、アルファ クラスタの作成をご覧ください。