フリートを作成してマルチクラスタ管理を簡素化する


このページでは、フリート作成の概要と、クラスタタイプごとの詳細について説明します。クラスタをフリートに手動で登録する方法や、手動登録の前提条件については、フリートの詳細な作成ガイドをご覧ください。

フリートは、次のいずれかの方法で作成できます。

  • クラスタを登録する: まだフリートがないプロジェクトに任意のタイプのクラスタを登録すると、新しいフリートが作成され、そのプロジェクトはフリート ホスト プロジェクトになります。1 つのプロジェクトは、最大で 1 つのフリートしか持つことができません。クラスタタイプとそれが存在するロケーションによって、クラスタの作成時にクラスタ構成で指定されている登録の詳細で自動的に登録が行われる場合と、クラスタをフリートに手動で追加する必要がある場合があります。
  • 名前付きフリートを作成する: クラスタを登録する前に、空のフリートを作成できます。
  • Google Kubernetes Engine(GKE)Enterprise エディションにアップグレードする: Google Cloud コンソールから GKE Enterprise を有効にすると、使用しているプロジェクト用にフリートが自動的に作成されます。また、デフォルトで、そのプロジェクトにあるすべての既存の Google Cloud クラスタは、そのフリートに自動的に登録されます。新しいクラスタも、そのクラスタを作成するときにフリートに登録できます。

各フリートには名前があり、Google Cloud コンソールに表示されます。デフォルトでは、フリートホスト プロジェクトのプロジェクト ID の末尾に fleet が付加された名前になっています。フリートにわかりやすい名前をつけたい場合は、フリートを作成するときに指定できます。

フリート メンバーシップについて

クラスタをフリートに登録すると、クラスタはフリート メンバーになります。フリートには複数のプロジェクトや環境のクラスタを含めることができるため、フリートに登録する各クラスタには、一意の名前をつける必要があります。これは、コマンドやドキュメントの中で、クラスタのフリート メンバーシップ名と呼ばれることがあります。通常、クラスタのフリート メンバーシップ名は、そのクラスタの元の名前ですが、フリート内にその名前を持つ別のクラスタがすでに存在する場合は、登録時に新しい名前を作成する(元のクラスタ名の前後に修飾子を追加するなど)必要があります。存在する名前でクラスタをフリートに登録しようとすると、登録は失敗します。

フリート メンバーシップのロケーション

各フリート クラスタのメンバーシップは、フリート サービスによって管理されます。このサービスのロケーションは、クラスタがフリートに登録された方法に応じて、グローバルまたはリージョンになります。

  • Google Cloud CLI を使用して登録された Google Cloud 上の GKE クラスタでは、クラスタ自体と同じリージョンで実行されるフリート サービス インスタンスによってメンバーシップが管理されます。これにより、一部のサービスのリージョン インスタンス(Connect ゲートウェイなど)を使用するなど、独自の高可用性サービスを構築する際に最適なレイテンシを実現できます。リージョン メンバーシップ管理では、たとえば、規制上の理由で特定のリージョンから移動できないデータがあるなどの状況もサポートされます。クラスタを異なるリージョンから管理するように選択することはできません。

  • Config Connector を使用して登録された Google Cloud 上の GKE クラスタは、グローバル フリート サービスとリージョン フリート サービスのいずれかによって管理できます。

  • 他のすべてのフリート メンバーは、グローバル フリート サービスを使用して管理されます。

クラスタがフリート メンバーである間は、クラスタのメンバーシップのロケーションを変更できません。グローバル フリート メンバーシップを持つ GKE クラスタがあり、そのリージョンから管理されるように変更するには、クラスタの登録を解除し、gcloud または Config Connector を使用して同じフリートに再度登録する必要があります。

クラスタのメンバーシップのロケーションを確認する(たとえば、コマンド パラメータとして使用する場合や、クラスタをリージョン メンバーシップに切り替えることを検討する場合)には、次のいずれかを行います。

  • すべてのフリート メンバーを一覧表示します。各クラスタのメンバーシップのロケーションは、出力の LOCATION 列に表示されます。

     gcloud container fleet memberships list \
       --project=PROJECT_ID
    
  • 次のコマンドを実行して、クラスタのメンバーシップ(メンバーシップのロケーションなど)を describe します。MEMBERSHIP_NAME は、クラスタのメンバーシップ名に置き換えてください。

     gcloud container fleet memberships describe MEMBERSHIP_NAME \
       --project=PROJECT_ID
    

チームスコープ

フリート メンバー クラスタは、フリート内の 1 つ以上のチームスコープに関連付けることができます。チームスコープは、フリート クラスタのサブセットを特定のアプリケーション チームに関連付けるためのエンタープライズ フリートレベルの構造であり、さまざまなチームベースの機能(アクセス制御、チームスコープのオブザーバビリティ、クラスタのアップグレード ロールアウトの順序付けなど)を有効にするために使用できます。

Google Cloud 上の GKE クラスタ

Google Cloud にある GKE クラスタは、明示的にフリートに追加する必要があります。既存のクラスタを登録するには、Google Cloud コンソールの [クラスタ] ページからのクイック登録、gcloud CLI を使用したコマンドラインからの登録、Terraform または Config Connector を使用した宣言型登録のいずれかを選択できます。クラスタの作成時に Google Cloud コンソール、gcloud CLI、または Terraform を使用して新しいクラスタを登録することもできます。GKE Enterprise を有効にしている場合は、フリートレベルの設定と機能がすでに構成されているクラスタを作成できます。これらのオプションの詳細については、Google Cloud にあるクラスタをフリートに登録するをご覧ください。

Google Cloud にあるクラスタは、現在のプロジェクト内のフリート、または(いくつかの追加の権限で)別のプロジェクト内のフリートに登録できます。

Google Cloud の外部にあるクラスタ

GKE Enterprise を有効にした場合は、Google Cloud の外部にあるクラスタをフリートに追加し、異なる環境のクラスタを一緒に表示して管理できます。このセクションで後述するとおり、Google Cloud の外部にある GKE クラスタは、ほとんどの場合、クラスタを作成するときに自動的にフリートに登録されます。サードパーティの Kubernetes クラスタをフリートに追加する場合は、手動で登録する必要があります。

Google Cloud の外部にクラスタを登録すると、クラスタと Google Cloud プロジェクト間の通信を処理する Connect Agent がクラスタにインストールされます。Connect Agent の動作については、Connect Agent の概要をご覧ください。

Google Distributed Cloud(オンプレミス)

オンプレミス環境の GKE on VMwareGKE on Bare Metal のクラスタは、クラスタの作成時に選択したフリートに自動的に登録されます。フリートホスト プロジェクトやその他の登録の詳細は、関連するクラスタ構成ファイルで指定されます。VMware 上の Google Distributed Cloud を使用している場合、バージョン 1.13 以降では、管理クラスタユーザー クラスタの両方を登録する必要があります。1.13 より前のバージョンで、フリートの一部として管理する場合は、必要に応じて登録の詳細を管理クラスタ構成に追加できます。未登録の管理クラスタは、クラスタ構成ファイルを更新し、gkectl を使用してクラスタを更新することで登録できます。オンプレミス GKE クラスタの登録解除はできません。また、手動登録もできません(登録解除されていない管理クラスタを除く)。

他のパブリック クラウド上の GKE

GKE Multi-Cloud API を使用して作成された AWS 上の GKE クラスタと Azure 上の GKE クラスタは、関連する gcloud cluster create コマンドを実行するときにフリートホスト プロジェクトが指定され、クラスタ作成時に選択したフリートに自動的に登録されます。GKE Multi-cloud を使用して作成されたクラスタには、すでにプロジェクト(API が有効になっているプロジェクト)が関連付けられているため、クラスタを異なるプロジェクトのフリートに登録する場合は、クラスタの作成時に追加の設定を行う必要があります。GKE Multi-Cloud API を使用して作成したクラスタを登録解除することや、手動で登録することはできません。

サードパーティの Kubernetes クラスタ(接続クラスタ)

既存のサードパーティの Kubernetes クラスタ(EKS、AKS、オンプレミスのディストリビューションなど)をフリート メンバーとして管理する場合は、こうしたクラスタを GKE クラスタと一緒にプロジェクト フリートに登録できます。x86 ノードを含む標準準拠の Kubernetes クラスタは、GKE Multi-Cloud API を使用してフリートに接続できます。これには、Amazon EKS、Azure AKS、および要件を満たす他の CNCF 準拠クラスタが含まれます。登録するサードパーティ クラスタには、GKE Enterprise の料金の一部として vCPU ごとに料金が発生します。

接続されたクラスタを登録するには、次のガイドをご覧ください。

クラスタを異なるフリートに移動させる

現在、登録済みのクラスタをフリート間で移動(登録解除してから再登録)させることは、おすすめできません。予期しない動作や望ましくない動作が発生する可能性があるためです。たとえば、ワークロード フリートの Workload Identity が変更され、リクエストのブロックや停止を引き起こす可能性があります。ワークロードを配置するフリートに新しいクラスタを作成した後、古いクラスタから新しいクラスタにワークロードを移すことをおすすめします。

(省略可)空のフリートを作成する

デフォルトでは、フリート ホスト プロジェクトに初めてクラスタを登録するとき、または Google Cloud コンソールから GKE Enterprise を有効にする場合に、フリートホスト プロジェクトに新しいフリートが作成されます。クラスタを登録する前に新しい名前付きフリートを作成する場合は(たとえば、チームアクセスのスコープを設定するためなど)、次のコマンドを実行します。

gcloud alpha container fleet create --display-name=NAME [--project=FLEET_HOST_PROJECT_ID]

display-name を指定しない場合、新しいフリートは、フリートホスト プロジェクト名に基づくデフォルトの表示名になります。

フリートを表示する

組織に複数のフリートがある場合は、Google Cloud コンソールでフリートを確認して移動できます。組織内のプロジェクト全体のフリートを確認するには、少なくとも roles/gkehub.viewer ロールが必要です。詳細については、Kubernetes Engine のロールロールの付与方法をご覧ください。

すべてのフリート

すべてのフリートを確認するには:

  1. Google Cloud コンソールで、Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. GKE ナビゲーション メニューの上部にある [すべてのフリート] をクリックします。組織内のすべてのフリートが一覧表示されます。

フリート名をクリックすると、そのフリートに登録されているクラスタを確認できます。このリストにあるフリートを選択すると、Google Cloud コンソールでフリート ホスト プロジェクトに自動的に切り替わります。

フリート プルダウン リスト

プルダウン リストから特定のフリートを確認するには:

  1. Google Cloud コンソールで、Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. GKE Enterprise ナビゲーション メニューの上部にある [フリート] プルダウン リストをクリックすると、プロジェクト全体のフリートが表示されます。

  3. フリート名を選択すると、フリート ダッシュボードが開きます。このリストにあるフリートを選択すると、Google Cloud コンソールでフリート ホスト プロジェクトに自動的に切り替わります。

ダッシュボードで [すべてのクラスタを表示] をクリックすると、そのフリートに登録されているクラスタを確認できます。

次のステップ