このページでは、Anthos clusters on VMware(GKE On-Prem)ユーザー クラスタ構成ファイルのフィールドについて説明します。
構成ファイルのテンプレートの生成
gkeadm
を使用して管理ワークステーションを作成した場合、gkeadm
によりユーザー クラスタの構成ファイル用のテンプレートが生成されます。また、gkeadm
によって一部のフィールドに入力されます。
管理ワークステーションの作成に gkeadm
を使用していない場合、gkectl
を使用してユーザー クラスタの構成ファイルのテンプレートを生成できます。
ユーザー クラスタの構成ファイルのテンプレートを生成するには:
gkectl create-config cluster --config=OUTPUT_FILENAME
OUTPUT_FILENAME
は、生成されたテンプレートの任意のパスに置き換えます。このフラグを省略すると、gkectl
はファイルに user-cluster.yaml
という名前を付け、現在のディレクトリに配置します。
テンプレート
構成ファイルの入力
次のセクションで説明するように、構成ファイルでフィールド値を入力します。
name
文字列。ユーザー クラスタの任意の名前。次に例を示します。
name: "my-user-cluster"
gkeOnPremVersion
文字列。ユーザー クラスタ用の Anthos clusters on VMware のバージョン。次に例を示します。
gkeOnPremVersion: 1.6.0-gke.7
vCenter
vCenter 環境のすべての要素を管理クラスタに指定したものと同じにする場合は、このセクションを削除するか、コメントアウトしたままにします。
vCenter 環境の一部を管理クラスタに対して指定したのとは異なるものにする場合は、このセクションの該当するフィールドに入力します。ここで vCenter
セクションで設定したフィールドにより、管理クラスタ構成ファイルの対応するフィールドがオーバーライドされます。
vCenter.resourcePool
文字列。ユーザー クラスタの vCenter リソースプールの名前。デフォルト以外のリソースプールを使用している場合は、vCenter リソースプールの名前を指定します。例:
vCenter: resourcePool: "MY-USER-POOL"
デフォルトのリソースプールを使用している場合は、次の値を指定します。
vCenter: resourcePool: "VCENTER_CLUSTER/Resources"
VCENTER_CLUSTER
は、使用する vCenter クラスタの名前に置き換えます。
スタンドアロン ホストのルートリソース プールの指定をご覧ください。
vCenter.datastore
文字列。ユーザー クラスタの vCenter データストアの名前。次に例を示します。
vCenter: datastore: "MY-USER-DATASTORE"
vCenter.caCertPath
文字列。GKE On-Prem などのクライアントが vCenter Server にリクエストを送信すると、サーバーは、証明書または証明書バンドルを提示して、ID をクライアントに証明する必要があります。証明書またはバンドルを確認するには、GKE On-Prem に信頼チェーン内のルート証明書が必要です。
vCenter.caCertPath
をルート証明書のパスに設定します。例:
vCenter: caCertPath: "/usr/local/google/home/me/certs/user-vcenter-ca-cert.pem"
ご使用の VMware インストレーションには、vCenter サーバーに証明書を発行する認証局(CA)があります。信頼チェーンのルート証明書は、VMware が作成した自己署名証明書です。
デフォルトの VMWare CA を使用しない場合は、別の認証局を使用するように VMware を構成できます。
vCenter Server でデフォルトの VMware CA が発行した証明書を使用している場合は、次のように証明書をダウンロードします。
curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip
SERVER_ADDRESS
は、vCenter Server のアドレスに置き換えます。
unzip
コマンドをインストールし、証明書ファイルを解凍します。
sudo apt-get install unzip unzip downloads.zip
1 回の unzip
コマンドで解凍できない場合は、再度コマンドを入力します。
certs/lin
で証明書ファイルを探します。
vCenter.credentials.fileRef.path
文字列。vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。ユーザー アカウントには管理者ロールまたは同等の権限が必要です。vSphere の要件をご覧ください。例:
vCenter: credentials: fileRef: path: "my-config-directory/user-creds.yaml"
vCenter.credentials.fileRef.entry
文字列。vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。例:
vCenter: credentials: fileRef: entry: "vcenter-creds"
enableDataplaneV2
ブール値。Dataplane V2(ベータ版)を有効にする場合は、true
に設定します。それ以外の場合は false
に設定します。例:
enableDataplaneV2: true
network
このセクションには、ユーザー クラスタ ネットワークに関する情報が含まれます。
network.hostConfig
このセクションには、クラスタで使用される NTP サーバー、DNS サーバー、DNS 検索ドメインに関する情報が格納されます。
次のフィールドのどちらかまたは両方に値を指定した場合は、このセクションを入力します。それ以外の場合は、このセクションを削除します。
loadBalancer.seesaw.ipBlockFilePath
network.ipMode.ipBlockFilePath
network.hostConfig.dnsServers
文字列の配列。ホストが使用する DNS サーバーのアドレス。例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
文字列の配列。ホストが使用する時刻サーバーのアドレス。例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
文字列の配列。ホストが使用する DNS 検索ドメイン。これらのドメインは、ドメイン検索リストの一部として使用されます。例:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
文字列。クラスタノードが DHCP サーバーから IP アドレスを取得するようにするには、これを "dhcp"
に設定します。クラスタノードに、指定したリストから静的 IP アドレスを選択させる場合は、これを "static"
に設定します。例:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
ipMode.type
を "static"
に設定した場合は、このフィールドに入力します。ipMode.type
を "dhcp"
に設定した場合は、このフィールドを削除します。
文字列。クラスタの IP ブロック ファイルのへのパス。例:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
と network.podCiDR
文字列。ユーザー クラスタには、Service に使用する IP アドレスの範囲と Pod に使用する IP アドレスの範囲が必要です。これらの範囲は、network.serviceCIDR
フィールドと network.podCIDR
フィールドで指定します。これらのフィールドにはデフォルト値が入力されています。入力した値は、必要に応じて任意の値に変更できます。
Service と Pod の範囲は重複しないようにします。また、Service と Pod の範囲が、クラスタ内のノードで使用する IP アドレスと重複しないようにしてください。
例:
network: serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16"
network.vCenter.networkName
文字列。ユーザー クラスタ ノードの vSphere ネットワークの名前。
名前に特殊文字が含まれる場合は、エスケープ シーケンスを使用する必要があります。
特殊文字 | エスケープ シーケンス |
---|---|
スラッシュ(/ ) |
%2f |
バックスラッシュ(\ ) |
%5c |
パーセント記号(% ) |
%25 |
ネットワーク名が一意でない場合は、ネットワークのパス(/DATACENTER/network/NETWORK_NAME など)を指定できます。
例:
network: vCenter: networkName: "MY-USER-CLUSTER-NETWORK"
loadBalancer
このセクションには、ユーザー クラスタのロードバランサに関する情報が含まれます。
loadBalancer.vips.controlPlaneVIP
管理クラスタの Kubernetes API サーバー用にロードバランサで構成するために選択した IP アドレス。次に例を示します。
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.ingressVIP
上り(内向き)トラフィックのロードバランサに選択した IP アドレス。次に例を示します。
loadBalancer: vips: ingressVIP: "203.0.113.4"
loadBalancer.kind
文字列。"Seesaw"
、"F5BigIP"
、"ManualLB"
のいずれかに設定します。次に例を示します。
loadBalancer: kind: "Seesaw"
loadBalancer.manualLB
loadbalancer.kind
を "manualLB"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
loadBalancer.manualLB.ingressHTTPNodePort
整数。ユーザー クラスタ内の Ingress サービスは、LoadBalancer
型の Kubernetes Services として実装されます。この Service には、HTTP 用の ServicePort があります。HTTP ServicePorts の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。例:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
整数。ユーザー クラスタ内の Ingress サービスは、LoadBalancer 型の Service として実装されます。この Service には HTTPS 用の ServicePort があります。HTTPS ServicePort の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。例:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
整数。管理クラスタの Kubernetes API サーバーは、NodePort
型の Service として実装されます。Service の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。例:
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.addonsNodePort
このフィールドを削除します。ユーザー クラスタでは使用されません。
loadBalancer.f5BigIP
loadbalancer.kind
を "f5BigIP"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
loadBalancer.f5BigIP.address
文字列。F5 BIG-IP ロードバランサのアドレス。例:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.fileRef.path
文字列。Anthos clusters on VMware が F5 BIG-IP ロードバランサへの接続に使用できるアカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。次に例を示します。
loadBalancer: f5BigIP: fileRef: path: ""my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.fileRef.entry
文字列。F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。例:
loadBalancer: f5BigIP: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
文字列。管理クラスタ用に作成した BIG-IP パーティションの名前。例:
loadBalancer: f5BigIP: partition: "my-f5-admin-partition"
loadBalancer.f5BigIP.snatPoolName
文字列。SNAT を使用している場合は、SNAT プールの名前。SNAT を使用していない場合は、このフィールドを削除するか、コメントアウトしたままにします。例:
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
loadbalancer.kind
を "Seesaw"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
loadBalancer.seesaw.ipBlockFilePath
文字列。これを、Seesaw VM の IP ブロック ファイルのパスに設定します。例:
loadbalancer: seesaw: ipBlockFilePath: "user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vird
整数。Seesaw VM または VM ペアの仮想ルーター識別子。この識別子は VLAN 内で一意なものにする必要があります。有効な範囲は 1~255 です。例:
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
文字列。コントロール プレーンの Seesaw VM がアドバタイズする任意の VIP。次に例を示します。
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
整数。各 Seesaw VM の CPU 数。次に例を示します。
loadBalancer:. seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
整数。各 Seesaw VM のメモリのメガバイト数。次に例を示します。
loadBalancer:. seesaw: memoryMB: 8192
loadBalancer.seesaw.vCenter.networkName
文字列。Seesaw VM を含むネットワークの名前。例:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
ブール値。高可用性の Seesaw ロードバランサを作成する場合は、これを true
に設定します。それ以外の場合は false
に設定します。次に例を示します。
loadBalancer:. seesaw: enableHA: true
masterNode
このセクションには、ユーザー クラスタのコントロール プレーン ノードとして機能する管理クラスタ内のノードに関する情報が含まれます。
masterNode.cpus
整数。このユーザー クラスタのコントロール プレーンとして機能する各管理クラスタノードの CPU 数。次に例を示します。
masterNode: cpus: 8
masterNode.memoryMB
整数。このユーザー クラスタのコントロール プレーンとして機能する各管理クラスタノードのメモリのメガバイト数。次に例を示します。
masterNode: memoryMB: 8192
masterNode.replicas
整数。このユーザー クラスタのコントロール プレーン ノードの数。このフィールドに 1 または 3 を設定します。次に例を示します。
masterNode: replicas: 3
nodePools
オブジェクトの配列。各オブジェクトはノードプールを表します。
nodePools[i].name
文字列。ノードプールに付ける名前。例:
nodePools: - name: "my-node-pool"
nodePools[i].cpus
整数。プール内の各ノードの CPU 数。次に例を示します。
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
整数。プール内の各ノードのメモリ容量(MB)。次に例を示します。
nodePools" - name: "my-node-pool" memoryMB: 8192
nodePools[i].replicas
整数。プール内のノード数。例:
nodePools: - name: "my-node-pool" replicas: 5
noodePools[i].labels
マッピング。プール内の各ノードに適用するラベル。次に例を示します。
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
nodePools[i].taints
オブジェクトの配列。各オブジェクトは taint を表します。次に例を示します。
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].bootDiskSizeGB
整数。プール内の各ノードのブートディスクのサイズ(ギガバイト単位)。この構成は、Anthos clusters on VMware バージョン 1.5.0 以降で利用できます。次に例を示します。
nodePools" - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].vsphere.datastore
文字列。プール内の各ノードが作成される vCenter データストアの名前。次に例を示します。
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
antiAffinityGroups.enabled
ブール値。DRS ルールの作成を有効にするには、この値を true
に設定します。それ以外の場合は false
に設定します。次に例を示します。
antiAffinityGroups: enabled true
VMware の Anthos クラスタはユーザー クラスタのノードに対して VMware Distributed Resource Scheduler(DRS)の反アフィニティ ルールを自動的に作成し、データセンター内の少なくとも 3 つの物理ホストにそれを分散させます。
この機能を使用するには、vSphere 環境が次の条件を満たしている必要があります。
VMware DRS が有効になっていること。VMware DRS には、vSphere Enterprise Plus ライセンス エディションが必要です。
vSphere ユーザー アカウントに
Host.Inventory.Modify cluster
権限があること。利用可能な物理ホストが少なくとも 3 つあること。
前述のとおり、vSphere スタンダード ライセンスがある場合、VMware DRS を有効にすることはできません。
DRS が有効になっていない場合や、vSphere VM をスケジュール設定できるホストが 3 つ以上ない場合は、antiAffinityGroups.enabled
を false
に設定します。
authentication
このセクションには、クラスタ ユーザーの認証方法と認可方法に関する情報が含まれます。
authentication.oidc
このセクションは使用しないでください。代わりに、クラスタの作成後に、OIDC による Anthos Identity サービス用のクラスタの構成 の説明に従って ClientConfig カスタム リソースを編集します。
authentication.sni
クラスタの Kubernetes API サーバーに追加のサービス証明書を提供する場合は、このセクションに入力してください。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
authentication.sni.certPath
文字列。Kubernetes API サーバーのサービス証明書のパス。例:
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
文字列。証明書の秘密鍵ファイルのパス。例:
authentication: sni: keyPath: "my-cert-folder/example.com.key"
authentication.ldap
LDAP プロバイダに関する情報を提供する場合は、このセクションに入力してください。それ以外の場合は、このセクションを削除します。
authentication.ldap.name
文字列。LDAP プロバイダの名前。例:
authentication: ldap: name: "my-ldap-provider"
authentication.ldap.host
文字列。LDAP プロバイダのホスト名または IP アドレス。例:
authentication: ldap: host" "203.0.113.20"
authentication.ldap.connectionType
文字列。LDAP で保護されていない接続を使用する場合は、これを "insecure"
に設定します。セキュアな接続を使用するには、このフィールドを削除します。
デフォルトでは、LDAP over TLS が使用されます。connectionType を "insecure"
に設定すると、これを変更し、保護されていない接続を使用できます。"insecure"
に設定すると、ldap.caPath
の値を指定する必要はありません。
例:
authentication: ldap: connectionType: "insecure"
authentication.ldap.caPath
文字列。LDAP プロバイダのルート証明書のパス。例:
authentication: ldap: caPath: "my-cert-folder/ldap-cert.pem"
authentication.ldap.user.baseDN
文字列。LDAP ディレクトリ内のユーザー エントリの場所。例:
authentication: ldap: user: baseDN: "DC=example-domain,DC=com"
authentication.ldap.user.userAttribute
文字列: DN でユーザー名の前にある属性の名前。デフォルトは "CN"
です。例:
authentication: ldap: user: userAttribute: "CN"
authentication.ldap.user.memberAttribute
文字列。ユーザーのグループ メンバーシップを記録する属性の名前。デフォルトは "memberOf"
です。例:
authentication: ldap: user: memberAttribute: "memberOf"
stackdriver
このセクションには、ログと指標の保存に使用する Google Cloud プロジェクトとサービス アカウントに関する情報が含まれます。
stackdriver.projectID
文字列。ログを表示する Google Cloud プロジェクトの ID。次に例を示します。
stackdriver: projectID: "my-logs-project"
stackdriver.clusterLocation
文字列。ログを保存する Google Cloud リージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。次に例を示します。
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
ブール値。クラスタのネットワークが VPC によって制御されている場合は、このフィールドに true
を設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。それ以外の場合は、このフィールドに false
を設定します。例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
文字列。ロギング モニタリング サービス アカウントの JSON 鍵ファイルのパス。例:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.disableVsphereResourceMetrics
ブール値。これを true
に設定すると、vSphere からの指標の収集が無効になります。それ以外の場合は、false
に設定します。例:
stackdriver: disableVsphereResourceMetrics: true
gkeConnect
このセクションには、クラスタを Google Cloud に接続するために使用する Google Cloud プロジェクトとサービス アカウントに関する情報が含まれます。
gkeConnect.projectID
文字列。クラスタを Google Cloud に接続するために使用する Cloud プロジェクトの ID。次に例を示します。
gkeConnect: projectID: "my-connect-project-123"
gkeConnect.registerServiceAccountKeyPath
文字列。接続登録サービス アカウントの JSON 鍵ファイルのパス。次に例を示します。
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.agentServiceAccountKeyPath
文字列。接続エージェント サービス アカウントの JSON 鍵ファイルのパス。例:
gkeConnect: agentServiceAccountKeyPath: "my-key-folder/connect-agent-key.json"
cloudRun.enabled
ブール値。Cloud Run を有効にする場合は、これを true
に設定します。それ以外の場合は false
に設定します。例:
cloudRun: enabled: true
usageMetering
クラスタの使用状況の測定を有効にする場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
usageMetering.bigQueryProjectID
文字列。使用状況の測定データを保存する Google Cloud プロジェクトの ID。次に例を示します。
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
文字列。使用状況の測定データを格納する BigQuery データセットの ID。次に例を示します。
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
文字列。BigQuery サービス アカウントの JSON 鍵ファイルのパス。例:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.enableConsumptionMetering
ブール値。使用量をベースとした測定を有効にするには、これを true
に設定します。それ以外の場合は false に設定します。例:
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
クラスタの Kubernetes API サーバーの監査ログを Cloud Audit Logs と統合する場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
cloudAuditLogging.projectID
文字列。監査ログを保存する Google Cloud プロジェクトのプロジェクト ID。次に例を示します。
cloudAuditLogging: projectID: "my-audit-project"
cloudAuditLogging.clusterLocation
文字列。監査ログを保存する Google Cloud のリージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。例:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
文字列。監査ログ サービス アカウントの JSON 鍵ファイルのパス。例:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
autoRepair.enabled
ブール値。ノードの自動修復を有効にするには、これを true
に設定します。それ以外の場合は、false
に設定します。例:
autoRepair: enabled: true