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


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

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

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

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

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

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

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

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

  • 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 つ以上のチームスコープに関連付けることができます。チームスコープは、フリート クラスタのサブセットを特定のアプリケーション チームに関連付けるための Enterprise フリートレベルの構造で、アクセス制御、チームスコープのオブザーバビリティ、クラスタ アップグレードのロールアウトの順序付けなど、さまざまなチームベースの機能を有効にするために使用できます。

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 以外のクラスタをフリートに追加し、異なる環境のクラスタを一緒に表示して管理できます。このセクションの残りの部分で説明するように、GKE クラスタ(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 版 と 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 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 コンソールでフリート ホスト プロジェクトに自動的に切り替わります。

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

次のステップ