このページは、Google Distributed Cloud の小規模な概念実証インストールについて説明するガイドの第 2 部です。パート 1 は、最小限のインフラストラクチャの設定に関するもので、IP アドレスの計画方法と、デプロイに必要な vSphere と Google Cloud インフラストラクチャの設定方法を説明しています。このドキュメントは、前のセクションで行った設定と計画に基づいており、このドキュメントで入力できるシンプルなテンプレートを使用して、vSphere 環境で管理ワークステーション、管理クラスタ、ユーザー クラスタを作成する方法について説明します。その後は、アプリケーションのデプロイに進みます。
このシンプルなインストールのインフラストラクチャ設定のように、このドキュメントを使用して設定したクラスタは、実際の本番環境のニーズやユースケースには適していない可能性があります。本番環境へのインストールに関するその他の情報、ベスト プラクティス、手順については、インストール ガイドをご覧ください。
始める前に
最小限のインフラストラクチャを設定するの説明に沿って、vSphere と Google Cloud の環境を設定できていることを確認します。
Terraform を使用してユーザー クラスタを作成する場合は、管理ワークステーションか別のパソコンに Terraform が必要です。
手順の概要
この設定における主な手順は次のとおりです。
サービス アカウントの作成に必要な権限を持つアカウントを使用して、Google Cloud CLI にログインします。
vCenter のユーザー名とパスワード、および前のセクションで準備した IP アドレスなど、Google Distributed Cloud の構成に必要な情報を収集します。
設定の完了に必要な追加のサービス アカウントを含め、管理者クラスタとユーザー クラスタの作成に必要なリソースとツールを使用して、管理ワークステーションを作成します。
ユーザー クラスタを管理および更新するための管理クラスタを作成します。
ワークロードを実行するためのユーザー クラスタを作成します。
1. Google Cloud CLI にログインする
Google Distributed Cloud を設定するには、権限が異なる複数のサービス アカウントが必要です。したがって、gkeadm
は現在の gcloud CLI を使用するため、account
プロパティを設定する際はサービス アカウントの作成と構成に必要な権限のあるアカウントを使用して Google Cloud CLI にログインする必要があります。
gcloud CLI にログインします。どの Google アカウントも使用できますが、必要な権限が必要です。 このガイドの前のパートに沿って操作した場合は、すでにコンポーネント アクセス サービス アカウントを作成するための適切なアカウントでログインしている可能性があります。
gcloud auth login
gcloud CLI の
account
プロパティが正しく設定されていることを確認します。gcloud config list
出力には、SDK
account
プロパティの値が表示されます。例:[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
最新の gcloud CLI コンポーネントがインストールされていることを確認します。
gcloud components update
gcloud CLI のインストール方法によっては、「このインストールで Google Cloud CLI コンポーネント マネージャーが無効になっているため、この操作を実行できません。次のコマンドを実行して、このインストールで同じ結果を得ることができます」というメッセージが表示される場合があります。手順に沿って、コマンドをコピーして貼り付け、コンポーネントを更新してください。
2. 情報を収集する
最小限のインフラストラクチャを設定するで準備した情報を使用して、次の表のプレースホルダを編集します。
vSphere の詳細 | |
---|---|
vCenter アカウントのユーザー名 | USERNAME |
vCenter アカウントのパスワード | PASSWORD |
vCenter Server のアドレス | ADDRESS |
管理ワークステーションの作成に使用するマシン上の vCenter Server のルート CA 証明書のパス | CA_CERT_PATH |
vSphere データセンターの名前 | DATA_CENTER |
vSphere クラスタの名前 | VSPHERE_CLUSTER |
vSphere リソースプールの名前またはパス。詳細については、vcenter.resourcePool をご覧ください。 | RESOURCE_POOL |
vSphere データストアの名前 | DATASTORE |
vSphere ネットワークの名前 | NETWORK |
IP アドレス | |
管理ワークステーションの 1 つの IP アドレス | ADMIN_WS_IP |
管理クラスタのコントロール プレーン ノードの 3 つの IP アドレス。 |
ADMIN_CONTROL_PLANE_NODE_IP_1 ADMIN_CONTROL_PLANE_NODE_IP_2 ADMIN_CONTROL_PLANE_NODE_IP_3 |
ユーザー クラスタ内のコントロール プレーン ノードの IP アドレス。 |
USER_CONTROL_PLANE_NODE_IP |
ユーザー クラスタ ワーカーノードの 4 つの IP アドレス。これには、アップグレードと更新に使用できる追加のノードのアドレスが含まれます。 |
USER_NODE_IP_1 USER_NODE_IP_2 USER_NODE_IP_3 USER_NODE_IP_4 |
管理クラスタの Kubernetes API サーバーの仮想 IP アドレス(VIP) | ADMIN_CONTROL_PLANE_VIP |
ユーザー クラスタ Kubernetes API サーバーの VIP | USER_CONTROL_PLANE_VIP |
ユーザー クラスタの Ingress VIP | USER_INGRESS_VIP |
ユーザー クラスタ内の LoadBalancer タイプの Service 用の 2 つの VIP。 |
SERVICE_VIP_1 SERVICE_VIP_2 |
管理ワークステーションとクラスタノードから到達可能な DNS サーバーの IP アドレス | DNS_SERVER_IP |
管理ワークステーションとクラスタノードから到達可能な NTP サーバーの IP アドレス | NTP_SERVER_IP |
管理ワークステーションとクラスタノードを持つサブネットのデフォルト ゲートウェイの IP アドレス | DEFAULT_GATEWAY_IP |
管理ワークステーションとクラスタノードを持つサブネットのネットマスク 例: 255.255.255.0 |
NETMASK |
ネットワークがプロキシ サーバーの背後にある場合は、プロキシ サーバーの URL。 詳細については、プロキシをご覧ください。必要に応じて、管理ワークステーションの構成ファイルに手動で入力します。 | PROXY_URL |
Service と Pod の CIDR 範囲 | |
管理クラスタとユーザー クラスタには、それぞれ Service の CIDR 範囲と Pod の CIDR 範囲が必要です。 ネットワーク内の他の要素と重複しないように変更する必要がない限り、次の事前入力値を使用します。 | |
管理クラスタ内の Service の CIDR 範囲 | 10.96.232.0/24 |
管理クラスタ内の Pod の CIDR 範囲 | 192.168.0.0/16 |
ユーザー クラスタ内の Service の CIDR 範囲 | 10.96.0.0/20 |
ユーザー クラスタ内の Pod の CIDR 範囲 | 192.168.0.0/16 |
Google Cloud の詳細 | |
選択した Cloud プロジェクトの ID | PROJECT_ID |
管理ワークステーションの作成に使用するマシンで、前のセクションで設定したコンポーネント アクセス サービス アカウントの JSON キーファイルのパス。 | COMPONENT_ACCESS_SA_KEY_PATH |
Google Cloud アカウントに関連付けられているメールアドレス。例: alex@example.com 。 |
GOOGLE_ACCOUNT_EMAIL |
3. 管理ワークステーションを作成する
クラスタを作成する前に、管理ワークステーションを作成して SSH で接続する必要があります。管理ワークステーションは、vSphere 環境で GKE Enterprise クラスタを作成するために必要なツールとリソースを備えたスタンドアロンの VM です。gkeadm
コマンドライン ツールを使用して管理者ワークステーションを作成します。
gkeadm をダウンロードする
現在のディレクトリに gkeadm
をダウンロードします。
gcloud storage cp gs://gke-on-prem-release/gkeadm/1.30.0-gke.1930/linux/gkeadm ./ chmod +x gkeadm
管理クラスタとユーザー クラスタの構成ファイルを作成するには、gkeadm
バージョン(Google Distributed Cloud のバージョン)が必要です。gkeadm
のバージョンを確認するには、次のコマンドを実行します。
./gkeadm version
次の出力例はバージョンを示しています。
gkeadm 1.30.200 (1.30.0-gke.1930)
gkeadm
の別のバージョンをダウンロードできますが、このガイドでは、1.30.0-gke.1930 をインストールすることを想定しており、すべての構成ファイルとコマンドでそのバージョンを使用します。
認証情報ファイルを作成する
現在のディレクトリに credential.yaml
という名前のファイルを作成し、次の内容を保存します。
apiVersion: v1 kind: CredentialFile items: - name: vCenter username: "USERNAME" password: "PASSWORD"
管理ワークステーションの構成ファイルを作成する
再度、現在のディレクトリに admin-ws-config.yaml
という名前のファイルを作成し、次の内容を保存します。
gcp: componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_PATH" vCenter: credentials: address: "ADDRESS" fileRef: path: "credential.yaml" entry: "vCenter" datacenter: "DATA_CENTER" datastore: "DATASTORE" cluster: "VSPHERE_CLUSTER" network: "NETWORK" resourcePool: "RESOURCE_POOL" caCertPath: "CA_CERT_PATH" proxyUrl: "" adminWorkstation: name: "minimal-installation-admin-workstation" cpus: 4 memoryMB: 8192 diskGB: 50 dataDiskName: gke-on-prem-admin-workstation-data-disk/minimal-installation-data-disk.vmdk dataDiskMB: 512 network: ipAllocationMode: "static" hostConfig: ip: "ADMIN_WS_IP" gateway: "DEFAULT_GATEWAY_IP" netmask: "NETMASK" dns: - "DNS_SERVER_IP" proxyUrl: "" ntpServer: ntp.ubuntu.com
管理ワークステーションを作成する
次のコマンドを使用して、管理ワークステーションを作成します。
./gkeadm create admin-workstation --auto-create-service-accounts
このコマンドを実行することで:
- 管理ワークステーションが作成されます
- インストールに必要な追加のサービス アカウントが自動的に作成されます
- 管理クラスタとユーザー クラスタのテンプレート構成ファイルが作成されます
出力には、管理ワークステーションの作成に関する詳細情報が含まれ、管理ワークステーションへの SSH 接続の取得に使用できるコマンドが表示されます。例:
... Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49 ********************************************************************
上記の出力では、IP アドレスは例です。管理ワークステーションの IP アドレスは異なります。管理ワークステーションの IP アドレスをメモしておきます。次のステップでこれが必要になります。
管理ワークステーションの作成の詳細については、管理ワークステーションを作成するをご覧ください。
管理ワークステーションに接続する
上の出力に表示されたコマンドを使用して、管理ワークステーションへの SSH 接続を確立します。例:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
このコマンドを再度探す必要がある場合は、gkeadm
で、gkeadm create admin-workstation
を実行するローカルマシン上のディレクトリに gke-admin-ws-...
という名前のファイルを作成します。
これには、SSH コマンドを含む管理ワークステーションの詳細が含まれます。
管理ワークステーション上で exit
と入力して SSH 接続を終了し、ローカルマシンに戻ります。
監査ロギング鍵を管理ワークステーションにコピーする
前のセクションでは、監査ロギング サービス アカウントの JSON 鍵ファイルを作成しました。
JSON 鍵ファイルを管理ワークステーションのホーム ディレクトリにコピーします。たとえば、ローカルマシン上の場所は次のように指定します。
scp -i /usr/local/google/home/me/.ssh/gke-admin-workstation audit-logging-key.json ubuntu@172.16.20.49:~
管理ワークステーションにファイルを表示する
管理ワークステーションへの SSH 接続を再度確立します。
管理ワークステーションで、ホーム ディレクトリ内のファイルを一覧表示します。
ls -1
出力は次のようになります。
admin-cluster.yaml
。管理クラスタを作成するためのテンプレート構成ファイルです。user-cluster.yaml
。ユーザー クラスタを作成するためのテンプレート構成ファイルです。- 管理ワークステーションの構成で指定した vCenter 証明書ファイル
- 管理ワークステーションの構成で指定した
credential.yaml
ファイル。 - 監査ログのサービス アカウントの JSON キーファイル。
gkeadm
が作成した 2 つのサービス アカウント(connect-register サービス アカウントと logging-monitoring サービス アカウント)の JSON キーファイル、および以前に作成したコンポーネント アクセス サービス アカウントのキーファイル。
例:
admin-cluster.yaml admin-ws-config.yaml audit-logging-key.json sa-key.json connect-register-sa-2203040617.json credential.yaml log-mon-sa-2203040617.json logs vc01-cert.pem user-cluster.yaml
クラスタを作成するには、構成ファイルでこれらのファイル名の一部を指定する必要があります。次の表のプレースホルダの値としてファイル名を使用します。
connect-register サービス アカウント キーのファイル名 例: connect-register-sa-2203040617.json |
CONNECT_REGISTER_SA_KEY |
logging-monitoring サービス アカウント キーのファイル名 例: log-mon-sa-2203040617.json |
LOG_MON_SA_KEY |
監査ロギング サービス アカウント キーのファイル名 例: audit-logging-key.json |
AUDIT_LOG_SA_KEY |
コンポーネント アクセス サービス アカウント キーのファイル名 例: sa-key.json |
COMPONENT_ACCESS_SA_KEY |
vCenter 証明書のファイル名 例: vc01-cert.pem |
CA_CERT_FILE |
4. 管理クラスタを作成する
vCenter と他の詳細情報で管理ワークステーションを構成したので、それを使用して vSphere 環境に管理クラスタを作成できます。この手順を開始する前に、前記のとおり、管理ワークステーションに SSH 接続されていることを確認してください。次のコマンドはすべて管理ワークステーションで実行されます。
管理クラスタ構成ファイルを作成する
admin-cluster.yaml
を開き、内容を次のように置き換えます。
apiVersion: v1 kind: AdminCluster name: "minimal-installation-admin-cluster" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.30.0-gke.1930-full.tgz" vCenter: address: "ADDRESS" datacenter: "DATA_CENTER" cluster: "VSPHERE_CLUSTER" resourcePool: "RESOURCE_POOL" datastore: "DATASTORE" caCertPath: "CA_CERT_FILE" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "NETWORK" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "ADMIN_CONTROL_PLANE_NODE_IP_1" hostname: "admin-cp-vm-1" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_2" hostname: "admin-cp-vm-2" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_3" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP" kind: "MetalLB" adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 antiAffinityGroups: enabled: false componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY" gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false cloudAuditLogging: projectID: "PROJECT_ID" clusterLocation: us-central1 serviceAccountKeyPath: "AUDIT_LOG_SA_KEY"
管理クラスタ構成ファイルを検証する
管理クラスタ構成ファイルが有効であり、クラスタの作成に使用できることを確認します。
gkectl check-config --config admin-cluster.yaml
OS イメージを vSphere にインポートする
完成した構成ファイルを使用して gkectl prepare
を実行し、ノードの OS イメージを vSphere にインポートします。
gkectl prepare --config admin-cluster.yaml --skip-validation-all
このコマンドの実行により、イメージが vSphere にインポートされ、管理クラスタのイメージを含む VM テンプレートとしてマークされます。
このコマンドが完了するまでには数分かかる場合があります。
管理クラスタを作成する
管理クラスタを作成します。
gkectl create admin --config admin-cluster.yaml
障害発生後に管理クラスタの作成を再開する
管理クラスタの作成が失敗またはキャンセルされた場合は、create
コマンドを再度実行してください。
gkectl create admin --config admin-cluster.yaml
管理クラスタの kubeconfig ファイルを見つける
gkectl create admin
コマンドで、現在のディレクトリに kubeconfig
という名前の kubeconfig ファイルが作成されます。この kubeconfig ファイルは後で管理クラスタとやり取りする際に必要になります。
管理クラスタが実行されていることを確認する
管理クラスタが実行されていることを確認します。
kubectl get nodes --kubeconfig kubeconfig
出力には、管理クラスタノードが表示されます。例:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
RBAC 認証を有効にする
ユーザー アカウントにクラスタの Kubernetes clusterrole/cluster-admin
ロールを付与するには、次のコマンドを実行します。
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-admin-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=kubeconfig \ --context=minimal-installation-admin-cluster \ --apply
このコマンドの出力は次のようになります(読みやすくするために省略しています)。
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
特に RBAC ポリシーを使用すると、Google Cloud コンソールで Google ID を使用してクラスタにログインすることで、クラスタの詳細を確認できます。
GKE On-Prem API への自動登録
プロジェクトで GKE On-Prem API が有効になっているため、クラスタは GKE On-Prem API に自動的に登録されます。GKE On-Prem API に管理クラスタを登録すると、Google Cloud コンソール、Google Cloud CLI または Terraform といった標準的なツールを使用して、管理クラスタが管理するユーザー クラスタを作成、アップグレード、更新、削除できます。クラスタを登録すると、gcloud
コマンドを実行してクラスタに関する情報を取得することもできます。
5. ユーザー クラスタを作成する
このセクションでは、コンソール、gkectl
、Terraform、gcloud CLI を使用してユーザー クラスタを作成する手順について説明します。
gkectl
この手順を開始する前に、前記のとおり、管理ワークステーションに SSH 接続されていることを確認してください。次のコマンドはすべて管理ワークステーションで実行されます。
ユーザー クラスタの IP ブロック ファイルを作成する
user-ipblock.yaml
という名前のファイルを作成します。次の内容をコピーして
user-ipblock.yaml
に貼り付け、ファイルを保存します。blocks: - netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_NODE_IP_1" hostname: "user-vm-1" - ip: "USER_NODE_IP_2" hostname: "user-vm-2" - ip: "USER_NODE_IP_3" hostname: "user-vm-3" - ip: "USER_NODE_IP_4" hostname: "user-vm-4"
ユーザー クラスタ構成ファイルを作成する
user-ipblock.yaml
と同じディレクトリにuser-cluster.yaml
という名前のファイルを作成します。次の内容をコピーして
user-cluster.yaml
に貼り付け、ファイルを保存します。
apiVersion: v1 kind: UserCluster name: "minimal-installation-user-cluster" gkeOnPremVersion: "1.30.0-gke.1930" enableControlplaneV2: true network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: "10.96.0.0/20" podCIDR: "192.168.0.0/16" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_CONTROL_PLANE_NODE_IP" hostname: "cp-vm-1" loadBalancer: vips: controlPlaneVIP: "USER_CONTROL_PLANE_VIP" ingressVIP: "USER_INGRESS_VIP" kind: "MetalLB" metalLB: addressPools: - name: "uc-address-pool" addresses: - "USER_INGRESS_VIP/32" - "SERVICE_VIP_1/32" - "SERVICE_VIP_2/32" enableDataplaneV2: true nodePools: - name: "uc-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true antiAffinityGroups: enabled: false gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false autoRepair: enabled: true
構成を検証してクラスタを作成する
ユーザー クラスタの構成ファイルが有効であり、クラスタの作成に使用できることを確認します。
gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
ユーザー クラスタを作成します。
gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
クラスタの作成には約 30 分かかります。
ユーザー クラスタ kubeconfig ファイルを見つける
gkectl create cluster
コマンドで、現在のディレクトリに USER_CLUSTER_NAME-kubeconfig
という名前の kubeconfig ファイルが作成されます。この kubeconfig ファイルは後でユーザー クラスタとやり取りする際に必要になります。
ユーザー クラスタが実行されていることを確認する
ユーザー クラスタが実行されていることを確認します。
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
USER_CLUSTER_KUBECONFIG は、ユーザー クラスタの kubeconfig ファイルのパスに置き換えます。
出力には、ユーザー クラスタノードが表示されます。例:
cp-vm-1 Ready control-plane,master user-vm-1 Ready user-vm-2 Ready user-vm-3 Ready
RBAC 認証を有効にする
ユーザー アカウントにクラスタの Kubernetes clusterrole/cluster-admin
ロールを付与するには、次のコマンドを実行します。
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-user-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=USER_CLUSTER_KUBECONFIG \ --context=minimal-installation-user-cluster \ --apply
このコマンドの出力は次のようになります(読みやすくするために省略しています)。
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
特に RBAC ポリシーを使用すると、Google Cloud コンソールで Google ID を使用してクラスタにログインすることで、クラスタの詳細を確認できます。
GKE On-Prem API への自動登録
プロジェクトで GKE On-Prem API が有効になっているため、クラスタは GKE On-Prem API に自動的に登録されます。これにより、コンソールまたは gcloud CLI を使用してクラスタの詳細を表示し、クラスタのライフサイクルを管理できます。たとえば、gcloud
コマンドを実行して、ユーザー クラスタに関する情報を取得できます。
コンソール
Google Cloud コンソールで、[Create a Google Distributed Cloud cluster] ページに移動します。
クラスタを作成する Google Cloud プロジェクトを選択します。選択したプロジェクトは、フリート ホスト プロジェクトとしても使用されます。これは、管理クラスタが登録されているプロジェクトと同じでなければなりません。ユーザー クラスタを作成すると、選択したプロジェクトのフリートに自動的に登録されます。
次のセクションでは、ユーザー クラスタの構成について説明します。
前提条件
前提条件ページの情報をよく理解してください。
ページの下部にある [次へ] をクリックします。
クラスタの基本
[名前] に、ユーザー クラスタの名前を入力します(例:
minimal-installation-user-cluster
)。[管理クラスタ] で、[minimal-installation-admin-cluster] を選択します。
[GCP API ロケーション] フィールドで、[us-central1] を選択します。
[バージョン] で、1.30.0-gke.1930 を選択します。
[認可] セクションまたは [vCenter 構成] セクションを開く必要はありません。
[次へ] をクリックします。
コントロール プレーン
[コントロール プレーン ノードの IP] の [ゲートウェイ] に「DEFAULT_GATEWAY_IP」と入力します。
[サブネット マスク] に「NETMASK」と入力します。
[IP アドレス] の [IP アドレス 1] に「USER_CONTROL_PLANE_NODE_IP」と入力します。[ホスト名 1] は空白のままにします。
[次へ] をクリックします。
ネットワーキング
このセクションでは、クラスタのノード、Pod、Service の IP アドレスを指定します。ユーザー クラスタには、ノードごとに 1 つの IP アドレスと、クラスタのアップグレード、更新、自動修復で必要な一時ノード用に別の IP アドレスが必要です。詳細については、ユーザー クラスタに必要な IP アドレス数をご覧ください。
[ワーカーノード IP] の [IP モード] で、[静的] が選択されていることを確認します。
[ゲートウェイ] に「DEFAULT_GATEWAY_IP」と入力します。
[サブネット マスク] に「NETMASK」と入力します。
[IP アドレス] に、次のアドレスを入力します。
- USER_NODE_IP_1
- USER_NODE_IP_2
- USER_NODE_IP_3
- USER_NODE_IP_4
[ホスト名] フィールドは空欄のままにします。
[サービスの CIDR] に「10.96.0.0/20」と入力します。[Pod CIDR] に「192.168.0.0/16」と入力します。
[DNS サーバー 1] に「DNS_SERVER_IP」と入力します。
[NTP サーバー 1] に「NTP_SERVER_IP」と入力します。
[DNS 検索ドメイン] は空欄のままにします。
[次へ] をクリックします。
ロードバランサ
[ロードバランサの種類] で [MetalLB にバンドル済み] を選択します。
[アドレス プール] で、デフォルトの名前を使用します。
[IP アドレス] の [IP アドレス範囲 1] に「USER_INGRESS_VIP/32」と入力します。
[IP アドレス範囲を追加] をクリックします。[IP アドレス範囲] に「SERVICE_VIP_1/32」と入力します
[IP アドレス範囲を追加] をクリックします。[IP アドレス範囲] に「SERVICE_VIP_2/32」と入力します
[IP アドレスの割り当て] で、[自動] を選択します。
[バグのある IP アドレスを避ける] はオフのままにします。
[仮想 IP] で、[コントロール プレーン VIP] に「USER_CONTROL_PLANE_VIP」と入力します。[Ingress VIP] はすでに入力されています。
[続行] をクリックします。
機能
デフォルトはすべてそのままにします。
[次へ] をクリックします。
ノードプール
デフォルトはすべてそのままにします。
[Verify and Complete] をクリックして、ユーザー クラスタを作成します。ユーザー クラスタの作成には 15 分以上かかります。設定の確認中と、データセンターにクラスタが作成されたときに、コンソールにステータス メッセージが表示されます。
設定の確認中にエラーが発生した場合は、コンソールにエラー メッセージが表示されます。これにより、構成の問題を修正して、クラスタを再度作成することができます。
発生する可能性のあるエラーと修正方法の詳細については、GKE On-Prem API に登録されているクラスタのトラブルシューティングをご覧ください。
Terraform
このセクションでは、Terraform を使用してユーザー クラスタとノードプールを作成する方法を説明します。詳細と他の例については、以下をご覧ください。
ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイル名の拡張子は
.tf
にする必要があります。このガイドでは、このファイルはmain.tf
と呼ばれます。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
ユーザー クラスタの Terraform リソースを確認します。
次の Terraform リソースの例には、前のセクションで計画テーブルに入力した値が入力されています。
resource "google_gkeonprem_vmware_cluster" "cluster-basic" { name = "minimal-installation-user-cluster" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster" description = "User cluster config with MetalLB, static IPs, and Controlplane V2" enable_control_plane_v2 = "true" on_prem_version = "1.30.0-gke.1930" control_plane_node { cpus = 4 memory = 8192 replicas = 1 } network_config { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] host_config { dns_servers = ["DNS_SERVER_IP"] ntp_servers = ["NTP_SERVER_IP"] } static_ip_config { ip_blocks { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_NODE_IP_1" hostname = "user-vm-1" } ips { ip = "USER_NODE_IP_2" hostname = "user-vm-2" } ips { ip = "USER_NODE_IP_3" hostname = "user-vm-3" } ips { ip = "USER_NODE_IP_4" hostname = "user-vm-4" } } } control_plane_v2_config { control_plane_ip_block { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_CONTROL_PLANE_NODE_IP" hostname = "cp-vm-1" } } } } load_balancer { vip_config { control_plane_vip = "USER_CONTROL_PLANE_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "uc-address-pool" manual_assign = "true" addresses = ["USER_INGRESS_VIP/32", "SERVICE_VIP_1/32", "SERVICE_VIP_2/32"] } } } authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } provider = google-beta } resource "google_gkeonprem_vmware_node_pool" "my-node-pool-1" { name = "uc-node-pool" project = "PROJECT_ID" vmware_cluster = "minimal-installation-user-cluster" location = "us-central1" config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = "true" } depends_on = [ google_gkeonprem_vmware_cluster.cluster-basic ] provider = google-beta }
Terraform リソースを
main.tf
にコピーしてファイルを保存します。Terraform プランを初期化して作成します。
terraform init
Terraform によって、Google Cloud プロバイダなどの必要なライブラリがインストールされます。
構成を確認し、必要に応じて変更を加えます。
terraform plan
Terraform プランを適用して、ユーザー クラスタを作成します。
terraform apply
プロンプトが表示されたら、「
yes
」と入力します。基本的なユーザー クラスタとノードプールを作成するには、約 15 分(ネットワークによってはそれ以上)かかります。
gcloud
クラスタを作成します。
gcloud container vmware clusters create minimal-installation-user-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1 \ --version=1.30.0-gke.1930 \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=uc-address-pool,avoid-buggy-ips=False,manual-assign=False,addresses=USER_INGRESS_VIP/32;SERVICE_VIP_1/32;SERVICE_VIP_2/32' \ --control-plane-vip=USER_CONTROL_PLANE_VIP \ --ingress-vip=USER_INGRESS_VIP \ --static-ip-config-ip-blocks='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_NODE_IP_1;USER_NODE_IP_2;USER_NODE_IP_3;USER_NODE_IP_4' \ --dns-servers=DNS_SERVER_IP \ --ntp-servers=NTP_SERVER_IP \ --enable-control-plane-v2 \ --enable-dataplane-v2 \ --control-plane-ip-block='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_CONTROL_PLANE_NODE_IP'
このコマンドからの出力は、次のようになります。
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
この出力例で、operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
という文字列は長時間実行オペレーションの OPERATION_ID
です。オペレーションのステータスは、次のコマンドで確認できます。
gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
詳細については、gcloud container vmware operations をご覧ください。
ユーザー クラスタの作成には 15 分以上かかります。コンソールの Google Kubernetes Engine クラスタの概要ページでクラスタを確認できます。
ノードプールを作成します。
gcloud container vmware node-pools create uc-node-pool \ --cluster=minimal-installation-user-cluster \ --project=PROJECT_ID \ --location=us-central1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=4 \ --memory=8192 \ --replicas=3 \ --enable-load-balancer
次のステップ
これで、Google Distributed Cloud の最小限のインストールが完了しました。オプションのフォローアップとして、アプリケーションをデプロイすることで、インストールの動作を確認できます。