GKE On-Prem API で管理されるようにクラスタを構成する

GKE On-Prem API は Google Cloud がホストする API であり、Google Cloud コンソール、Google Cloud CLI、Terraform の標準ツールを使用して、オンプレミス クラスタのライフサイクルを管理できます。これらのツールのどれかを使用してクラスタを作成すると、API はクラスタの作成時に指定した  Google Cloud  リージョンに、クラスタの状態に関するメタデータを保存します。このメタデータを使用すると、標準的なツールを使用してクラスタのライフサイクルを管理できます。これらのツールを使用して、クラスタの詳細の表示や、gkectl を使用して作成されたクラスタのライフサイクルの管理を行う場合は、GKE On-Prem API のクラスタを登録する必要があります。

用語

クラスタを登録することで、コンソール、gcloud CLI、または Terraform を使用してクラスタのライフサイクルを管理できます。

クラスタの登録は、フリートにクラスタを登録するための別のプロセスです。フリートとは、一緒に管理できる Kubernetes クラスタの論理グループです。すべての Google Distributed Cloud クラスタは、クラスタの作成時にフリートに登録されます。gkectl を使用してクラスタを作成すると、クラスタはクラスタ構成ファイルの gkeConnect.projectID フィールドに指定した Google Cloud プロジェクトに登録されます。このプロジェクトはフリート ホスト プロジェクトと呼ばれます。ユースケース、ベスト プラクティス、例など、フリートについて詳しくは、 フリート管理のドキュメントをご覧ください。

登録済みクラスタを表示する

すべてのフリート クラスタが、コンソールの [GKE クラスタ] ページに表示されます。これらの両方によって、フリート全体の概要を確認できます。また、Google Distributed Cloud では、GKE On-Prem API によって管理されているクラスタを確認できます。

フリート クラスタを表示するには:

  1. コンソールで [GKE クラスタ] ページに移動します。
    [GKE クラスタ] に移動
  2. Google Cloud プロジェクトを選択します。
    • [タイプ] 列に「VMware」と表示されている場合、クラスタは GKE On-Prem API によって管理されています。
    • [タイプ] 列に「外部」と表示されている場合は、クラスタは GKE On-Prem API で管理されていません。

要件

  • ユーザー クラスタはバージョン 1.11 以降である必要があります。
  • 管理クラスタは、バージョン 1.13 以降である必要があります。

  • プロジェクト オーナーでない場合は、少なくともそのプロジェクトに対する Identity and Access Management ロール roles/gkeonprem.admin が付与されている必要があります。このロールに含まれる権限の詳細については、IAM のドキュメントの GKE On-Prem ロールをご覧ください。

始める前に

  1. 必要に応じて gcloud CLI を設定します。

    1. gcloud CLI をインストールする必要がある場合は、gcloud CLI のドキュメントをご覧ください。

    2. 必要に応じて gcloud CLI コンポーネントを更新します。

      gcloud components update
      
  2. GKE On-Prem API を有効にして使用するために、以下の手順に従います。

    1. プロジェクトで API を有効にします。

      gcloud services enable \
          --project PROJECT_ID \
          gkeonprem.googleapis.com
      

      PROJECT_ID は、フリートホスト プロジェクトの ID に置き換えます。これは、管理クラスタ構成ファイルまたはユーザー クラスタ構成ファイルgkeconnect セクションで構成されたプロジェクト ID です。

      PERMISSION_DENIED エラーが発生した場合は、入力したプロジェクト ID を再確認してください。プロジェクト ID が正しい場合は、「gcloud auth login」を実行して、プロジェクトにアクセスできるアカウントで Google Cloud CLI にログインします。

    2. プロジェクトで GKE On-Prem API を初めて有効にした場合は、API を初期化する必要があります。これを行うには、クラスタの作成に使用できるバージョンを表示する gcloud CLI コマンドを実行します。

      gcloud container vmware clusters query-version-config \
          --project=PROJECT_ID \
          --location=REGION
      

      REGION は、us-west1 または別のサポートされているリージョンに置き換えます。

  3. Google API や他のアドレスからのトラフィックがプロキシ サーバーを通過できるよう組織が許可リストを設定している場合は、次を許可リストに追加します。

    • gkeonprem.googleapis.com
    • gkeonprem.mtls.googleapis.com

    GKE On-Prem API のサービス名です。

ユーザー クラスタを登録する

gcloud CLI

  1. 登録済みクラスタのフリート メンバーシップを一覧表示します。

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    PROJECT_ID は、フリートホスト プロジェクトのプロジェクト ID に置き換えます。

    次のステップで必要になるため、ユーザー クラスタを管理する管理クラスタがメンバーであるリージョンをメモしておきます。

  2. GKE On-Prem API にクラスタを登録します。

    gcloud container vmware clusters enroll USER_CLUSTER_NAME \
        --project=<var>PROJECT_ID</var> \
        --admin-cluster-membership=projects/PROJECT_ID/locations/MEMBERSHIP_REGION/memberships/ADMIN_CLUSTER_NAME \
        --location=REGION
    

    次のように置き換えます。

    • USER_CLUSTER_NAME: 登録するユーザー クラスタの名前。

    • PROJECT_ID: フリート ホスト プロジェクトのプロジェクト ID。

    • MEMBERSHIP_REGION: ユーザー クラスタを管理する管理クラスタがメンバーであるリージョン。 global または a Google Cloud リージョンを指定できます。

    • ADMIN_CLUSTER_NAME: ユーザー クラスタを管理する管理クラスタの名前。

      ADMIN_CLUSTER_NAMEMEMBERSHIP_REGIONPROJECT_ID は、--admin-cluster-membership フラグの完全修飾クラスタ名を形成します。

    • REGION: GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョン 。us-west1`us-west1` または別の サポートされているリージョンを指定します。 クラスタの登録後にリージョンを変更することはできません。

gkectl

管理ワークステーションで次の手順を行います。

  1. ユーザー クラスタの構成ファイルに次のセクションを追加します。

    gkeOnPremAPI:
      enabled:true
      location:REGION
    

    REGION は、GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョンに置き換えます。us-west1 または別のサポートされているリージョンを指定します。クラスタの登録後にリージョンを変更することはできません。

  2. クラスタを更新します。

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG_FILE
    

    次のように置き換えます。

    • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

    • USER_CLUSTER_CONFIG_FILE: ユーザー クラスタの構成ファイルのパス

管理クラスタを登録する

gcloud CLI

  1. 登録済みクラスタのフリート メンバーシップを一覧表示します。

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    PROJECT_ID は、フリートホスト プロジェクトのプロジェクト ID に置き換えます。

    次のステップで必要になるため、管理クラスタがメンバーであるリージョンをメモしておきます。

  2. GKE On-Prem API に管理クラスタを登録します。

    gcloud container vmware admin-clusters enroll ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID \
        --admin-cluster-membership=projects/PROJECT_ID/locations/MEMBERSHIP_REGION/memberships/ADMIN_CLUSTER_NAME \
        --location=REGION
    

次のように置き換えます。

  • ADMIN_CLUSTER_NAME: 登録する管理クラスタの名前。

  • PROJECT_ID: フリート ホスト プロジェクトのプロジェクト ID。

  • MEMBERSHIP_REGION: 管理クラスタがメンバーであるリージョン。`global` または リージョンを指定できます。global Google Cloud

    ADMIN_CLUSTER_NAMEMEMBERSHIP_REGIONPROJECT_ID は、--admin-cluster-membership フラグの完全指定クラスタ名を形成します。

  • REGION: GKE On-Prem API が実行され、クラスタ メタデータが保存される Google Cloud リージョン 。us-west1`us-west1` または別の サポートされているリージョンを指定します。 管理クラスタ構成ファイルの stackdriver.clusterLocation で構成したものと同じリージョンを使用することをおすすめします。 クラスタの登録後にリージョンを変更することはできません。

gkectl

管理ワークステーションで次の手順を行います。

  1. 管理クラスタの構成ファイルに次のセクションを追加します。

    gkeOnPremAPI:
      enabled:true
      location:REGION
    

    REGION は、GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョンに置き換えます。us-west1 または別のサポートされているリージョンを指定します。stackdriver.clusterLocation で構成したものと同じリージョンを使用することをおすすめします。クラスタの登録後にリージョンを変更することはできません。

  2. クラスタを更新します。

    gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG_FILE
    

    次のように置き換えます。

    • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

    • ADMIN_CLUSTER_CONFIG_FILE: 管理クラスタの構成ファイルのパス

クラスタに関する情報を取得する

クラスタを登録したら、次のコマンドを使用してクラスタに関する情報を取得できます。

ユーザー クラスタ

  • ユーザー クラスタを記述するには:
gcloud container vmware clusters describe USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=REGION
  • ユーザー クラスタを一覧表示するには:
gcloud container vmware clusters list \
  --project=PROJECT_ID \
  --location=-

--location=- に設定すると、すべてのリージョンのクラスタの一覧が取得されます。リストを絞り込む必要がある場合は、クラスタの登録時に指定したリージョンを --location に設定します。

管理クラスタ

  • 管理クラスタを記述するには:
gcloud container vmware admin-clusters describe ADMIN_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=REGION
  • 管理クラスタを一覧表示するには:
gcloud container vmware admin-clusters list \
  --project=PROJECT_ID \
  --location=-

--location=- に設定すると、すべてのリージョンのクラスタの一覧が取得されます。リストを絞り込む必要がある場合は、クラスタの登録時に指定したリージョンを --location に設定します。

クラスタに接続する

クラスタを GKE On-Prem API に登録したら、認証方法を選択して構成し、Google Cloud コンソールからクラスタを管理できるようにします。選択した認証方法によって、コマンドラインからクラスタへのアクセスも制御されます。詳しくは以下をご覧ください。