GKE On-Prem API は、Google Cloud コンソール、Google Cloud CLI、Terraform の標準ツールを使用して、オンプレミス クラスタのライフサイクルを管理できる Google Cloud がホストする API です。これらのツールを使用してクラスタを作成すると、API はクラスタの作成時に指定した Google Cloud リージョンに、クラスタの状態に関するメタデータを保存します。このメタデータを使用すると、標準的なツールを使用してクラスタのライフサイクルを管理できます。これらのツールを使用して、クラスタの詳細の表示や、bmctl
を使用して作成されたクラスタのライフサイクルの管理を行う場合は、GKE On-Prem API のクラスタを登録する必要があります。
用語
クラスタを登録すると、コンソール、gcloud CLI、または Terraform を使用してクラスタのライフサイクルを管理できます。
クラスタの登録は、フリートにクラスタを登録するための別のプロセスです。フリートとは、一緒に管理できる Kubernetes クラスタの論理グループです。すべての GKE on Bare Metal のクラスタは、クラスタの作成時にフリートに登録されます。bmctl を使用してクラスタを作成すると、クラスタはクラスタの構成ファイルの gkeConnect.projectID
フィールドに指定した Google Cloud プロジェクトに登録されます。このプロジェクトはフリート ホスト プロジェクトと呼ばれます。ユースケース、ベスト プラクティス、例など、フリートについて詳しくは、フリート管理のドキュメントをご覧ください。
登録済みクラスタを表示する
すべてのフリート クラスタが、コンソールで GKE Enterprise の [クラスタ] ページと GKE の [クラスタ] ページに表示されます。これらの両方によって、フリート全体の概要と、GKE on Bare Metal では GKE On-Prem API によって管理されているクラスタを確認できます。
フリート クラスタを表示するには:
-
コンソールで [GKE Enterprise クラスタ] ページに移動します。
GKE Enterprise の [クラスタ] ページに移動 -
Google Cloud プロジェクトを選択します。
- ベアメタルが [タイプ] 列に表示されている場合、クラスタは GKE On-Prem API によって管理されています。
- [タイプ] 列に [外部] と表示されている場合は、クラスタが GKE On-Prem API で管理されていません。
要件
- GKE On-Prem API に登録できるのは、ユーザー クラスタと管理クラスタのみです。ハイブリッド クラスタとスタンドアロン クラスタの登録はサポートされていません。
バージョン 1.13 以降。
プロジェクト オーナーでない場合は、少なくともそのプロジェクトに対する Identity and Access Management ロール
roles/gkeonprem.admin
が付与されている必要があります。このロールに含まれる権限の詳細については、IAM のドキュメントの GKE On-Prem ロールをご覧ください。
準備
必要に応じて gcloud CLI を設定します。
gcloud CLI をインストールする必要がある場合は、gcloud CLI のドキュメントをご覧ください。必要に応じて gcloud CLI コンポーネントを更新します。
gcloud components update
GKE On-Prem API を有効にして使用するために、以下の手順に従います。
プロジェクトで 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 にログインします。プロジェクトで GKE On-Prem API を初めて有効にする場合は、API を初期化する必要があります。これを行うには、クラスタの作成に使用できるバージョンを表示する gcloud CLI コマンドを実行します。
gcloud container bare-metal clusters query-version-config \ --project=PROJECT_ID \ --location=REGION
REGION
は、us-west1
または別のサポートされているリージョンに置き換えます。
Google API や他のアドレスからのトラフィックがプロキシ サーバーを通過できるよう組織が許可リストを設定している場合は、次を許可リストに追加します。
gkeonprem.googleapis.com
gkeonprem.mtls.googleapis.com
GKE On-Prem API のサービス名です。
ユーザー クラスタを登録する
gcloud CLI
--admin-cluster-membership
フラグの ADMIN_CLUSTER_NAME
プレースホルダを入力する必要がある場合は、必ずスクロールしてください。
gcloud container bare-metal clusters enroll USER_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
以下を置き換えます。
USER_CLUSTER_NAME
: 登録するユーザー クラスタの名前。PROJECT_ID
: フリート ホスト プロジェクトのプロジェクト ID。ADMIN_CLUSTER_NAME
: ユーザー クラスタを管理する管理クラスタ。管理クラスタ名は、Google Cloud でクラスタを一意に識別する完全指定のクラスタ名の最後のセグメントです。REGION
: GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョン。us-west1
または別のサポートされているリージョンを指定します。クラスタの登録後にリージョンを変更することはできません。
bmctl
管理ワークステーションで次の手順を行います。
管理クラスタの構成ファイルに次のセクションを追加します。
gkeOnPremAPI: enabled: true location: REGION
REGION
は、GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョンに置き換えます。us-west1
または別のサポートされているリージョンを指定します。クラスタの登録後にリージョンを変更することはできません。クラスタを更新します。
bmctl update cluster -c USER_CLUSTER_NAME \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
以下を置き換えます。
USER_CLUSTER_NAME
: 更新するユーザー クラスタの名前。ADMIN_CLUSTER_KUBECONFIG
: 管理クラスタの kubeconfig ファイルのパス
管理クラスタを登録する
gcloud CLI
--admin-cluster-membership
フラグの ADMIN_CLUSTER_NAME
プレースホルダを入力する必要がある場合は、必ずスクロールしてください。
gcloud container bare-metal admin-clusters enroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
以下を置き換えます。
ADMIN_CLUSTER_NAME
: 登録する管理クラスタの名前。PROJECT_ID
: フリート ホスト プロジェクトのプロジェクト ID。ADMIN_CLUSTER_NAME
とPROJECT_ID
は、--admin-cluster-membership
フラグの完全クラスタ名を作成するために使用されます。REGION
: GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョン。us-west1
または別のサポートされているリージョンを指定します。クラスタの登録後にリージョンを変更することはできません。
bmctl
管理ワークステーションで次の手順を行います。
管理クラスタ構成ファイルに次のセクションを追加します。
gkeOnPremAPI: enabled: true location: REGION
REGION
は、GKE On-Prem API が実行され、クラスタ メタデータを保存する Google Cloud リージョンに置き換えます。us-west1
または別のサポートされているリージョンを指定します。クラスタの登録後にリージョンを変更することはできません。クラスタを更新します。
bmctl update cluster -c ADMIN_CLUSTER_NAME \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
以下を置き換えます。
ADMIN_CLUSTER_NAME
: 更新する管理クラスタの名前。ADMIN_CLUSTER_KUBECONFIG
: 管理クラスタの kubeconfig ファイルのパス
クラスタに関する情報を取得する
クラスタを登録したら、次のコマンドを使用してクラスタに関する情報を取得できます。
ユーザー クラスタ
- ユーザー クラスタを記述するには:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
- ユーザー クラスタを一覧表示するには:
gcloud container bare-metal clusters list \ --project=PROJECT_ID \ --location=-
--location=-
と設定すると、すべてのリージョンのクラスタがすべて一覧表示されます。リストを絞り込む必要がある場合は、クラスタの登録時に指定したリージョンを --location
に設定します。
管理クラスタ
- 管理クラスタを記述するには:
gcloud container bare-metal admin-clusters describe ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
- 管理クラスタを一覧表示するには:
gcloud container bare-metal admin-clusters list \ --project=PROJECT_ID \ --location=-
--location=-
と設定すると、すべてのリージョンのクラスタがすべて一覧表示されます。リストを絞り込む必要がある場合は、クラスタの登録時に指定したリージョンを --location
に設定します。
クラスタに接続する
クラスタを GKE On-Prem API に登録したら、認証方法を選択して構成し、Google Cloud コンソールからクラスタを管理できるようにします。選択した認証方法により、コマンドラインからクラスタへのアクセスも制御されます。詳しくは次の記事をご覧ください。