このページでは、Google Distributed Cloud ユーザー クラスタの構成ファイルのフィールドについて説明します。
構成ファイルのテンプレートの生成
gkeadm
を使用して管理ワークステーションを作成した場合、gkeadm
によりユーザー クラスタの構成ファイル用のテンプレートが生成されます。また、gkeadm
によって一部のフィールドに入力されます。
管理ワークステーションの作成に gkeadm
を使用していない場合、gkectl
を使用してユーザー クラスタの構成ファイルのテンプレートを生成できます。
ユーザー クラスタの構成ファイルのテンプレートを生成するには:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
次のように置き換えます。
OUTPUT_FILENAME
: 生成されたテンプレートに対する任意のパス。このフラグを省略すると、gkectl
はファイルに user-cluster.yaml
という名前を付け、現在のディレクトリに配置します。
VERSION
: 目的のバージョン番号。例: gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8
。
テンプレート
必須フィールドとデフォルト値
フィールドに「必須」というマークが付いている場合は、完成した構成ファイルでそのフィールドに値が設定されている必要があります。
一部のフィールドは条件付きで必須です。たとえば、loadBalancer.kind
が MetalLB
に等しい場合、loadBalancer.metalLB.addressPools
は必須です。
フィールドにデフォルト値がある場合、そのフィールドに何も設定しないと、デフォルト値が使用されます。デフォルト値をオーバーライドするには、値を設定します。
フィールドに「必須」というマークがなく、デフォルト値もない場合、そのフィールドは省略可能です。関連する場合は設定できますが、必須ではありません。
構成ファイルの設定
次のセクションで説明するように、構成ファイルでフィールド値を入力します。
name
必須
文字列
ユーザー クラスタの任意の名前。名前は次の条件を満たす必要があります。
- 最大文字数は 40 文字とする
- 小文字の英数字またはハイフン(
-
)のみを使用している - 先頭が英字である
- 末尾が英数字である
例:
name: "my-user-cluster"
gkeOnPremVersion
必須
変更可
文字列
ユーザー クラスタの Google Distributed Cloud のバージョン。
例:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
事前に用意された認証情報を使用する場合は、このフィールドに入力します。それ以外の場合は、このフィールドを削除するか、コメントアウトしたままにします。
変更不可
文字列
有効な値: gke-onprem-secrets- で始まる文字列
このユーザー クラスタ用に事前に作成された Secret が保持される管理クラスタ内の Kubernetes Namespace の名前。
例:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1.30 以降
変更不可
ブール値
事前入力: true
デフォルト: true
バージョン 1.30 以降では、新しいユーザー クラスタに Controlplane V2 が必要です。このフィールドを構成ファイルに含める場合は、true
に設定する必要があります。Controlplane V2 を使用すると、ユーザー クラスタのコントロール プレーンはそのユーザー クラスタの 1 つ以上のノードで実行されます。Controlplane V2 のメリットは次のとおりです。
管理クラスタとユーザー クラスタ間のアーキテクチャの一貫性。
障害の分離。管理クラスタの障害は、ユーザー クラスタに影響しません。
運用上の分離。管理クラスタのアップグレードでユーザー クラスタのダウンタイムは発生しません。
デプロイの分離。管理クラスタとユーザー クラスタを、異なる障害発生ドメインまたは地理的な場所に配置できます。たとえば、エッジ ロケーションのユーザー クラスタが、管理クラスタとは地理的に異なる場所に存在する場合があります。
1.29 以前
変更不可
ブール値
事前入力: true
デフォルト: true
Controlplane V2 を有効にするには、enableControlplaneV2
を true
に設定するか、ユーザー クラスタ構成ファイルから設定を削除します。それ以外の場合は、false
に設定します。Controlplane V2 を使用すると、ユーザー クラスタのコントロール プレーンはそのユーザー クラスタの 1 つ以上のノードで実行されます。Controlplane V2 が有効になっていない場合、ユーザー クラスタ コントロール プレーンは管理クラスタで実行されます。
Controlplane V2 を有効にすることをおすすめします。
例:
enableControlplaneV2: true
vCenter
このセクションには、vSphere 環境と vCenter Server への接続に関する情報を掲載しています。
このセクションのフィールドを、管理クラスタ用に指定したものと同じにするには、フィールドを削除するか、コメントアウトしたままにします。
管理クラスタに指定したものとは異なるフィールドが必要な場合は、ここに入力します。この vCenter
セクションで設定したフィールドは、管理クラスタの構成ファイルの対応するフィールドよりも優先されます。
vCenter.address
変更不可
文字列
デフォルト: 管理クラスタから継承
このユーザー クラスタに使用する vCenter Server のインスタンスの IP アドレスまたはホスト名。
詳細については、vCenter Server アドレスの確認をご覧ください。
管理クラスタで使用されている vCenter Server のインスタンスとは異なる値を指定する場合は、Controlplane V2
を有効にし、network.vCenter.networkName
とセクション vCenter
のすべての必須フィールドの値を指定する必要があります。
例:
vCenter: address: "203.0.113.101"
vCenter: address: "my-vcenter-server-2.my-domain.example"
vCenter.datacenter
変更不可
文字列
デフォルト: 管理クラスタから継承
vSphere データセンターの相対パス。
このフィールドの値を指定する場合は、以下も指定する必要があります。
vCenter.networkName
vCenter.datastore
またはvCenter.storagePolicyName
を指定します。vCenter.cluster
またはvCenter.resourcePool
を指定します。
指定する値は、/
という名前のルートフォルダを基準とします。
データセンターがルートフォルダにある場合、値はデータセンターの名前です。
例:
vCenter: datacenter: "my-uc-data-center"
それ以外の場合は、値は 1 つ以上のフォルダとデータセンターの名前を含む相対パスになります。
例:
vCenter: datacenter: "data-centers/data-center-2"
vCenter.cluster
変更不可
文字列
デフォルト: 管理クラスタから継承
ユーザー クラスタ VM を実行する ESXi ホストを表す vSphere クラスタの相対パス。この vSphere クラスタは、vCenter データセンターの物理 ESXi ホストのサブセットを表します。
このフィールドの値を指定する場合は、以下も指定する必要があります。
vCenter.networkName
vCenter.datacenter
vCenter.datastore
またはvCenter.storagePolicyName
を指定します。
指定する値は、/.../DATA_CENTER/vm/
を基準とします。
vSphere クラスタが /.../DATA_CENTER/vm/
フォルダにある場合、値は vSphere クラスタの名前です
例:
vCenter: cluster: "my-uc-vsphere-cluster"
それ以外の場合、値は 1 つ以上のフォルダと vSphere クラスタの名前を含む相対パスになります。
例:
vCenter: cluster: "clusters/vsphere-cluster-2"
vCenter.resourcePool
変更不可
文字列
デフォルト: 管理クラスタから継承
ユーザー クラスタ VM の vCenter リソースプール。
デフォルトのリソースプールを使用する場合は、これを VSPHERE_CLUSTER/Resources
に設定します。
例:
vCenter: resourcePool: "my-uc-vsphere-cluster/Resources"
指定する値は /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
を基準とします。
リソースプールが /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
の直接の子である場合、値はリソースプールの名前となります。
例:
vCenter: resourcePool: "my-uc-resource-pool"
それ以外の場合、値は 2 つ以上のリソースプールを含む相対パスになります。
例:
vCenter: resourcePool: "uc-resource-pool-1/uc-resource-pool-2"
vCenter.datastore
省略可
変更不可
文字列
デフォルト: 管理クラスタから継承
ユーザー クラスタの vSphere データストアの名前。
指定する値は、パスではなく、名前にする必要があります。値にはフォルダを含めないでください。
例:
vCenter: datastore: "my-datastore"
このフィールドの値を指定する場合は、vCenter.storagePolicyName
の値を指定しないでください。vCenter.datastore
フィールドは、データストアをストレージ ポリシー ベース管理(SPBM)に移行する際にフィールドを空の文字列に設定する場合を除き、変更できません。
vCenter.storagePolicyName
省略可
変更不可
文字列
クラスタノードの VM ストレージ ポリシーの名前。
特定のノードプール内のノードに VM ストレージ ポリシーを指定することもできます。ただし、ここで指定したポリシーは、独自のポリシーを持たないすべてのノードプールに適用されます。
詳細については、ストレージ ポリシーを構成するをご覧ください。
このフィールドの値を指定する場合は、vCenter.datastore
の値を指定しないでください。
vCenter.caCertPath
変更可能
文字列
デフォルト: 管理クラスタから継承
vCenter Server の CA 証明書のパス。詳細については、vCenter CA 証明書の取得をご覧ください。
例:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
このフィールドを更新する方法については、vCenter 証明書の参照を更新するをご覧ください。
vCenter.credentials.fileRef.path
変更可能
文字列
デフォルト: 管理クラスタから継承
preparedSecrets.namespace に値を指定する場合は、このフィールドに値を指定しないでください。代わりに、vCenter.credentials.secretRef.version の値を指定します。
vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。ユーザー アカウントには管理者ロールまたは同等の権限が必要です。vSphere の要件をご覧ください。
gkectl update credentials
を使用すると、既存のクラスタのこのフィールドを更新できます。詳細については、サービス アカウント キーのローテーションをご覧ください。
vCenter 認証情報の更新については、クラスタ認証情報の更新をご覧ください。
例:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
変更可能
文字列
デフォルト: 管理クラスタから継承
vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
例:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.credentials.secretRef.version
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
preparedSecrets.namespace に値を指定する場合は、このフィールドに値を設定します。それ以外の場合は、このフィールドを削除するか、コメントアウトしたままにします。
このユーザー クラスタに使用する vCenter Server のインスタンスのユーザー名とパスワードを保持する管理クラスタ内の準備された Secret のバージョン。
例:
vCenter: credentials: secretRef: version: "1"
vCenter.folder
変更不可
文字列
デフォルト: 管理クラスタから継承
事前に作成していた vSphere フォルダの相対パス。このフォルダには、ユーザー クラスタ VM が保持されます。
値を指定しない場合、ユーザー クラスタ VM は /.../DATA_CENTER/vm/
に配置されます。
値を指定すると、/.../DATA_CENTER/vm/
を基準とします。
値にはフォルダの名前を指定できます。
例:
vCenter: folder: "my-uc-folder"
複数のフォルダを含む相対パスを値に指定することもできます。
例:
vCenter: folder: "folders/folder-2"
componentAccessServiceAccountKeyPath
変更可能
文字列
デフォルト: 管理クラスタから継承
コンポーネント アクセス サービス アカウントの JSON キーファイルのパス。
例:
componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"
componentAccessServiceAccountKey.secretRef.version
変更可
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
コンポーネント アクセス サービス アカウントの JSON キーを保持するために、管理クラスタで準備された Secret のバージョン。
例:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
管理クラスタが非公開レジストリを使用し、ユーザー クラスタで異なる非公開レジストリを使用する場合にのみ、このセクションに値を設定してください。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
管理クラスタの設定と異なる設定が必要な場合:
別のユーザー名、パスワード、証明書
(Control Plane V2 にのみ使用可能)別の非公開レジストリ アドレス
ここで privateRegistry
フィールドに入力します。新しい設定は、クラスタの作成時と更新時に取得されます。
privateRegistry.address
変更不可
文字列
デフォルト: 管理クラスタから継承
非公開の Docker レジストリを実行するマシンの IP アドレスまたは FQDN(完全修飾ドメイン名)。
例:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
変更可能
文字列
デフォルト: 管理クラスタから継承
非公開レジストリに準備された Secret を使用する場合は、このフィールドに値を指定しないでください。代わりに、privateRegistry.credentials.secretRef.version に値を指定します。
Google Distributed Cloud が非公開 Docker レジストリへのアクセスに使用できるアカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。
例:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
変更可能
文字列
デフォルト: 管理クラスタから継承
非公開 Docker レジストリのアカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.credentials.secretRef.version
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
preparedSecrets.namespace に値を指定し、非公開レジストリに準備した Secret を使用する場合は、このフィールドに値を設定します。それ以外の場合は、このフィールドを削除するか、コメントアウトしたままにします。
このユーザー クラスタに使用する vCenter Server のインスタンスのユーザー名とパスワードを保持する管理クラスタ内の準備された Secret のバージョン。
例:
privateRegistry: credentials: secretRef: version: "1"
privateRegistry.caCertPath
変更可能
文字列
デフォルト: 管理クラスタから継承
Docker が非公開レジストリからイメージを pull する場合、レジストリは証明書を提示して自身の ID を証明する必要があります。レジストリの証明書は、認証局(CA)によって署名されます。Docker は、CA 証明書を使用してレジストリの証明書を検証します。
このフィールドを CA 証明書のパスに設定します。
例:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
network
このセクションには、ユーザー クラスタ ネットワークに関する情報が含まれます。
network.hostConfig
このセクションには、クラスタノードである VM で使用される NTP サーバー、DNS サーバー、DNS 検索ドメインに関する情報を掲載しています。Seesaw ロードバランサを使用している場合、この情報は Seesaw VM についても該当します。
このセクションは、次のうち 1 つ以上が正の場合に必要です。
network.ipMode.type
はstatic
に設定されていますenableControlplaneV2
はtrue
に設定されているか、デフォルトでtrue
に設定できる。loadBalancer.kind
は"Seesaw"
に設定されています
network.hostConfig.dnsServers
必須
不変
文字列の配列
配列内の要素の最大数は 3 です。
VM の DNS サーバーのアドレス。
例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
必須
変更不可
文字列の配列
VM が使用する時刻サーバーのアドレス。
例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
変更不可
文字列の配列
ホストが使用する DNS 検索ドメイン。これらのドメインは、ドメイン検索リストの一部として使用されます。
例:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
変更不可
文字列
事前入力: static
デフォルト: dhcp
クラスタノードが DHCP サーバーから IP アドレスを取得するようにするには、"dhcp"
に設定します。クラスタノードに、指定したリストから静的 IP アドレスを選択させる場合は、これを "static"
に設定します。
例:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
network.ipMode.type
= static
の場合は必須
不変
文字列
クラスタの IP ブロック ファイルのへのパス。
例:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
変更不可
文字列
事前入力: 10.96.0.0/20
クラスタ内の Service に使用される IP アドレスの範囲(CIDR 形式)。/24 以上の範囲を指定してください。
例:
network: serviceCIDR: "10.96.0.0/20"
network.podCIDR
変更不可
文字列
事前入力: 192.168.0.0/16
デフォルト: 192.168.0.0/16
クラスタ内の Pod に使用される IP アドレスの範囲(CIDR 形式)。/18 以上の範囲を指定してください。
例:
network: podCIDR: "192.168.0.0/16"
Service の範囲が Pod の範囲と重複しないようにする必要があります。
Service と Pod の範囲は、クラスタ内から到達可能にする必要があるクラスタ外のアドレスと重複しないようにしてください。
たとえば、Service の範囲が 10.96.232.0/24、Pod の範囲が 192.168.0.0/16 であるとします。Pod からいずれかの範囲のアドレスに送信されたトラフィックは、クラスタ内として扱われ、クラスタ外の宛先に到達しません。
特に、Service と Pod の範囲が次の対象と重複しないようにする必要があります。
任意のクラスタ内に存在するノードの IP アドレス
ロードバランサ マシンで使用される IP アドレス
コントロール プレーン ノードとロードバランサで使用される VIP
vCenter Server、DNS サーバー、NTP サーバーの IP アドレス
Service と Pod の範囲は RFC 1918 アドレス空間にすることをおすすめします。
RFC 1918 アドレスを使用することが推奨される理由の 1 つは次のとおりです。Pod または Service の範囲に外部 IP アドレスが含まれているとします。Pod からそれらの外部アドレスのいずれかに送信されたトラフィックは、クラスタ内トラフィックとして扱われ、外部の宛先に到達しません。
network.vCenter.networkName
vCenter.address
が管理クラスタに使用している vCenter アドレスと異なる場合は必須。
変更不可
文字列
ユーザー クラスタ ノードの vSphere ネットワークの名前。
例:
network: vCenter: networkName: "my-network"
名前に特殊文字が含まれる場合は、エスケープ シーケンスを使用する必要があります。
特殊文字 | エスケープ シーケンス |
---|---|
スラッシュ(/ ) |
%2f |
バックスラッシュ(\ ) |
%5c |
パーセント記号(% ) |
%25 |
データセンターでネットワーク名が一意でない場合は、フルパスを指定できます。
例:
network: vCenter: networkName: "/my-uc-datacenter/network/my-network"
network.additionalNodeInterfaces
multipleNetworkInterfaces
を true
に設定した場合は、このセクションに入力します。
それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
変更不可
オブジェクトの配列では、それぞれが、クラスタ ノードのすべてまたは一部で使用できるネットワーク インターフェースを示します。
network.additionalNodeInterfaces[i].networkName
multipleNetworkInterfaces
= true
の場合は必須
不変
文字列
追加ノード インターフェースが接続する vSphere ネットワークの名前。
例:
network: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.additionalNodeInterfaces[i].type
multipleNetworkInterfaces
= true
の場合は必須
不変
文字列
例:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.additionalNodeInterfaces[i].ipBlockFilePath
network.additionalNodeInterfaces[i].type
= static
の場合は必須
不変
文字列
このネットワーク インターフェースを持つノード上のこのネットワーク インターフェースに使用される IP アドレスを保持する IP ブロック ファイルのパス。
例:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
network.controlPlaneIPBlock
enableControlplaneV2
を true
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
network.controlPlaneIPBlock.netmask
enableControlplaneV2
= true
の場合は必須
不変
文字列
例:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
enableControlplaneV2
= true
の場合は必須
不変
文字列
例:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
enableControlplaneV2
= true
の場合は必須
不変
それぞれが IP アドレスとオプションのホスト名を持つオブジェクトの配列。
高可用性(HA)ユーザー クラスタの場合、配列には 3 つの要素があります。HA 以外のユーザー クラスタの場合、配列には 1 つの要素があります。
例:
network: controlPlaneIPBlock: ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3"
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
必須
不変
文字列
事前入力:「MetalLB」
これを "ManualLB"
、"F5BigIP"
、"Seesaw"
、"MetalLB"
のいずれかに設定します。
新しい機能や高度な機能を有効にするには、サードパーティのロードバランサ(F5 BIG-IP や Citrix など)を使用している場合は "ManualLB"
を使用するか、バンドルされたソリューションの場合は "MetalLB"
を使用することをおすすめします。
例:
loadBalancer: kind: "MetalLB"
loadBalancer.manualLB
loadbalancer.kind
を "manualLB"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
loadBalancer.manualLB.ingressHTTPNodePort
loadBalancer.kind
= ManualLB
の場合は必須
不変
整数
事前入力: 30243
ユーザー クラスタの上り(内向き)プロキシは、LoadBalancer
タイプの Kubernetes Service で公開されます。この Service には、HTTP 用の ServicePort があります。HTTP ServicePort の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。
例:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
loadBalancer.kind
= ManualLB
の場合は必須
不変
整数
事前入力: 30879
ユーザー クラスタの上り(内向き)プロキシは、LoadBalancer タイプの Service で公開されます。この Service には HTTPS 用の ServicePort があります。HTTPS ServicePort の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。
例:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
loadBalancer.kind
= ManualLB
および enableControlplaneV2
= false
の場合は必須
不変
整数
事前入力: 30562
ユーザー クラスタの Kubernetes API サーバーは管理クラスタで実行され、LoadBalancer
タイプの Service で公開されます。Service の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。
例:
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.konnectivityServerNodePort
loadBalancer.kind
= ManualLB
および enableControlplaneV2
= false
の場合は必須
不変
整数
事前入力: 30563
kubeception を使用するユーザー クラスタの Kubernetes API サーバーは管理クラスタで実行され、LoadBalancer
タイプの Service で公開されます。Konnectivity サーバーは、別の nodePort
値でこの Service を再利用します。Konnectivity サーバーに nodePort
値を選択する必要があります。
このフィールドを Konnectivity サーバーの nodePort
値に設定します。
例:
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.f5BigIP
loadbalancer.kind
を "f5BigIP"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
新しい機能や高度な機能を有効にするには、F5 BIG-IP ロードバランサの手動ロード バランシングを構成することをおすすめします。手動ロード バランシングを有効にするには、loadbalancer.kind
を "ManualLB"
に設定し、loadBalancer.manualLB
セクションに入力します。詳細については、手動負荷分散モードを有効にするをご覧ください。
loadBalancer.f5BigIP.address
loadBalancer.kind
= "f5BigIP"
の場合は必須
文字列
F5 BIG-IP ロードバランサのアドレス
例:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
loadBalancer.kind
= "f5BigIP"
の場合は必須
文字列
Google Distributed Cloud が F5 BIG-IP ロードバランサへの接続に使用できるアカウントのユーザー名とパスワードを保持する認証情報ファイルのパス。
ユーザー アカウントには、ロードバランサの設定と管理を行うために十分な権限を持つユーザーロールが必要です。管理者ロールまたはリソース管理者ロールのどちらかで十分です。
F5 BIG-IP 認証情報の更新については、クラスタ認証情報の更新をご覧ください。
例:
loadBalancer: f5BigIP: credentials: fileRef: path: ""my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.credentials.fileRef.entry
loadBalancer.kind
= "f5BigIP"
の場合は必須
文字列
F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
例:
loadBalancer: f5BigIP: credentials: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
loadBalancer.kind
= "f5BigIP"
の場合は必須
文字列
ユーザー クラスタ用に作成した BIG-IP パーティションの名前。
例:
loadBalancer: f5BigIP: partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
loadBalancer.kind
= "f5BigIP"
かつ、SNAT を使用している場合は必須
文字列
SNAT プールの名前。
例:
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
loadbalancer.kind
を "Seesaw"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
SeeSaw ロードバランサでは、次の制限事項に注意してください。
- 高可用性管理クラスタがこのユーザー クラスタを管理している場合、このユーザー クラスタは Seesaw ロードバランサを使用できません。
- Controlplane V2 が有効になっているユーザー クラスタでは、Seesaw ロードバランサを使用できません。
これらの機能を使用するには、MetalLB ロードバランサを構成することをおすすめします。MetalLB ロードバランサを有効にするには、loadbalancer.kind
を "MetalLB"
に設定し、loadBalancer.metalLB
セクションに入力します。詳細については、MetalLB によるバンドルされた負荷分散をご覧ください。
現在 SeeSaw ロードバランサを使用している場合は、MetalLB に移行することをおすすめします。
loadBalancer.seesaw.ipBlockFilePath
loadBalancer.kind
= Seesaw
の場合は必須
不変
文字列
Seesaw VM の IP ブロック ファイルのパス。
例:
loadBalancer: seesaw: ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
loadBalancer.kind
= Seesaw
の場合は必須
不変
整数
有効な値: 1~255
事前入力: 0
Seesaw VM の仮想ルーター識別子。この 識別子(任意の整数)は VLAN 内で一意である必要があります。
例:
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
loadBalancer.kind
= Seesaw
の場合は必須
不変
文字列
マスター Seesaw VM に構成された仮想 IP アドレス。
例:
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
loadBalancer.kind
= Seesaw
の場合は必須
変更可
整数
事前入力: 4
各 Seesaw VM の CPU 数。
例:
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
loadBalancer.kind
= Seesaw
の場合は必須
変更可
整数
事前入力: 3072
各 Seesaw VM のメモリのメビバイト数。
例:
loadBalancer: seesaw: memoryMB: 8192
注: このフィールドは、メガバイト数ではなくメモリのメビバイト数を指定します。1 メビバイトは、2^20 = 1,048,576 バイトです。1 メガバイトは、10^6 = 1,000,000 バイトです。
loadBalancer.seesaw.vCenter.networkName
変更不可
文字列
デフォルト: クラスタノードと同じ
Seesaw VM を含むネットワークの名前。
例:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
変更不可
loadBalancer.kind
= Seesaw
の場合に関連
ブール値
事前入力: false
デフォルト: false
高可用性(HA)Seesaw ロードバランサを作成する場合は true
に設定します。それ以外の場合は false
に設定します。HA Seesaw ロードバランサは、VM の(マスター、バックアップ)ペアを使用します。
例:
loadBalancer: seesaw: enableHA: true
loadBalancer.seesaw.disableVRRPMAC
変更不可
loadBalancer.kind
= Seesaw
の場合に関連
ブール値
事前入力: true
デフォルト: true
この値を true
に設定すると、Seesaw ロードバランサはフェイルオーバーに MAC ラーニングを使用しません。代わりに、Gratuitous ARP を使用します。この値を false
に設定すると、Seesaw ロードバランサは MAC ラーニングを使用します。これを true
に設定することをおすすめします。vSphere 7 以降を使用していて、高可用性の Seesaw ロードバランサを使用している場合は、これを true
に設定する必要があります。
例:
loadBalancer: seesaw: disableVRRPMAC: true
loadBalancer.metalLB
loadbalancer.kind
を "MetalLB"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
詳細については、MetalLB によるバンドルされた負荷分散をご覧ください。
loadBalancer.metalLB.addressPools
loadBalancer.kind
= 'MetalLB` の場合は必須
変更可
オブジェクトの配列。それぞれは、MetalLB ロードバランサで使用されるアドレスプールに関する情報を保持します。
loadBalancer.metalLB.addressPools[i].name
loadBalancer.kind
= MetalLB
の場合は必須
変更可
文字列
アドレスプールに付ける名前。
例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
loadBalancer.kind
= MetalLB
の場合は必須
変更可
文字列の配列。各文字列は、アドレスの範囲。各範囲は、CIDR 形式またはハイフン付きの範囲の形式であることが必要です。
例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" addresses: - "192.0.2.0/26" - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs
loadBalancer.kind
= MetalLB
の場合に関連
変更可
ブール値
事前入力: false
デフォルト: false
true
に設定すると、MetalLB コントローラは .0 または .255 で終わる IP アドレスを Service に割り当てません。これにより、バグの多いコンシューマ デバイスが、これらの特別な IP アドレスに送信されたトラフィックを誤って破棄するという問題を回避できます。
例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" - "192.0.2.0/26" - "192.0.2.64-192.0.2.72" avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign
loadBalancer.kind
= MetalLB
の場合に関連
変更可
ブール値
事前入力: false
デフォルト: false
MetalLB コントローラがこのプールの IP アドレスを Service に自動的に割り当てないようにする場合は、true
に設定します。次に、デベロッパーは、LoadBalancer
タイプの Service を作成し、プールからアドレスのいずれか 1 つを手動で指定します。
それ以外の場合は false
に設定します。
例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
1.30 以降
変更不可
ブール値
事前入力: true
デフォルト: true
バージョン 1.30 以降では、新しいユーザー クラスタに Dataplane V2 が必要です。また、true
に設定する必要があります。Controlplane V2 を使用するには、Dataplane V2 が必要です。Dataplane V2 には、次のメリットがあります。
Dataplane V2 では、以前の CNI オプションである Calico と比較して、より高度で機能的な Container Network Interface(CNI)が提供されます。Calico はメンテナンス モードです。重大なバグの修正とセキュリティ更新は提供されますが、新機能の開発は行われません。一方、Dataplane V2 は積極的に開発、拡張されており、最新のネットワーク技術と機能を利用できます。
Dataplane V2 は、GKE や他の Google Distributed Cloud プロダクトに推奨される CNI です。
1.29 以前
変更不可
ブール値
事前入力: true
デフォルト: false
Dataplane V2 を有効にする場合、または Controlplane V2 を使用する場合は、true
に設定します。それ以外の場合は false
に設定します。
Dataplane V2 を有効にすることをおすすめします。
例:
enableDataplaneV2: true
トラブルシューティングの手順については、Google Distributed Cloud NFS と DataPlane v2 の問題のトラブルシューティングをご覧ください。
dataplaneV2.forwardMode
変更不可
文字列
有効な値: snat、dsr
事前入力: snat
デフォルト: snat
Dataplane V2 が有効になっているクラスタの転送モード。
送信元ネットワーク アドレス変換(SNAT)モードでは、ロードバランサ ノードからバックエンド Pod に転送される際にパケットが SNAT 変換されます。Pod は元の送信元 IP アドレスを認識できないため、返信パケットはロードバランサ ノードを通過する必要があります。
Direct Server Return(DSR)モードでは、ロードバランサ ノードからバックエンド Pod にパケットを転送する場合、パケットに元の送信元 IP アドレスが保持されます。Pod は元の送信元 IP アドレスを認識できるため、返却パケットはロードバランサ ノードを通過せずに、クライアントに直接送信されます。
例:
dataplaneV2: forwardMode: "dsr"
注: このフィールドを更新すると、クラスタのバージョンによっては既知の問題が発生する可能性があります。影響を受けるクラスタ バージョンがある場合は、記載されている回避策を適用してください。
multipleNetworkInterfaces
変更不可
ブール値
事前入力: false
デフォルト: false
Pod の複数のネットワーク インターフェースを有効にする場合は、true
に設定します。それ以外の場合は false
に設定します。
詳細については、Pod の複数のネットワーク インターフェースを構成するをご覧ください。
例:
multipleNetworkInterfaces: true
advancedNetworking
変更不可
ブール値
事前入力: false
デフォルト: false
下り(外向き)NAT ゲートウェイを作成する場合は、true
に設定します。それ以外の場合は、false
に設定します。
このフィールドを true
に設定した場合は、enableDataplaneV2
も true
に設定する必要があります。
例:
advancedNetworking: true
disableBundledIngress
クラスタに対してバンドルされた Ingress を無効にする場合は、これを true
に設定します。それ以外の場合は、false
に設定します。
ブール値
変更可
事前入力: false
デフォルト: false
例:
disableBundledIngress: true
storage.vSphereCSIDisabled
vSphere CSI コンポーネントのデプロイを無効にする場合は、これを true
に設定します。それ以外の場合は、false
に設定します。
変更可
ブール値
事前入力: false
デフォルト: false
例:
storage: vSphereCSIDisabled: false
masterNode
このセクションには、このユーザー クラスタのコントロール プレーン ノードとして機能するノードに関する情報が含まれます。
masterNode.cpus
変更可
整数
事前入力: 4
デフォルト: 4
このユーザー クラスタのコントロール プレーンとして機能する各ノードの CPU の数。
例:
masterNode: cpus: 8
masterNode.memoryMB
変更可
整数
事前入力: 8192
デフォルト: 8192
このユーザー クラスタのコントロール プレーンとして機能する各ノードのメモリ容量(MiB)。4 の倍数である必要があります。
例:
masterNode: memoryMB: 8192
注: このフィールドは、メガバイト数ではなくメモリのメビバイト数を指定します。1 メビバイトは、2^20 = 1,048,576 バイトです。1 メガバイトは、10^6 = 1,000,000 バイトです。
masterNode.replicas
変更不可
整数
有効な値: 1 または 3
事前入力: 1
デフォルト: 1
このユーザー クラスタのコントロール プレーン ノードの数一旦クラスタを作成すると、この数は変更できなくなります。後でレプリカの数を変更する場合は、ユーザー クラスタを再作成する必要があります。
例:
masterNode: replicas: 3
masterNode.autoResize.enabled
変更可
ブール値
事前入力: false
デフォルト: false
true
に設定すると、ユーザー クラスタのコントロール プレーン ノードのサイズが自動的に変更されます。それ以外の場合は false
に設定します。
詳細については、ユーザー クラスタのコントロール プレーン ノードのノードサイズ変更を有効にするをご覧ください。
例:
masterNode: autoResize: enabled: true
masterNode.vsphere.datastore
省略可
不変
文字列
デフォルト: vCenter.datastore
の値
このユーザー クラスタのコントロール プレーン ノードが作成されるデータストア。
指定する値は、パスではなく、名前にする必要があります。値にはフォルダを含めないでください。
例:
masterNode: vSphere: datastore: "control-plane-datastore"
このフィールドの値を指定する場合は、masterNode.vsphere.storagePolicyName
の値を指定しないでください。masterNode.vsphere.datastore
フィールドは、データストアをストレージ ポリシー ベース管理(SPBM)に移行する際にフィールドを空の文字列に設定する場合を除き、変更できません。
masterNode.vsphere.storagePolicyName
省略可
変更不可
文字列
デフォルト: vCenter.storagePolicyName
の値
コントロール プレーンノードの VM ストレージ ポリシーの名前。
詳細については、ストレージ ポリシーを構成するをご覧ください。
例:
masterNode: vSphere: storagePolicyName: "control-plane-storage-policy"
このフィールドの値を指定する場合は、masterNode.vsphere.datastore
の値を指定しないでください。
nodePools
必須
変更可
オブジェクトの配列。各オブジェクトはノードプールを表します。
詳細については、ノードプールの作成と管理をご覧ください。
nodePools[i].name
必須
不変
文字列
ノードプールに付ける名前。名前は次の条件を満たす必要があります。
- 最大文字数は 40 文字とする
- 小文字の英数字またはハイフン(
-
)のみを使用している - 先頭が英字である
- 末尾が英数字である
例:
nodePools: - name: "my-node-pool-1"
nodePools[i].gkeOnPremVersion
ユーザー クラスタをアップグレードするときに、選択したノードプールを以前のバージョンのまま維持するよう指定できます。
このノードプールを以前のバージョンのままにする場合は、これを以前のバージョンに設定します。それ以外の場合は、このフィールドを削除するか、空の文字列に設定します。詳細については、ユーザー クラスタをアップグレードするをご覧ください。
変更可
文字列
デフォルト: クラスタ gkeOnPremVersion
例:
nodePools: - name: "my-node-pool" gkeOnPremVersion: "1.13.0-gke.16"
nodePools[i].cpus
必須
変更可
整数
事前入力: 4
プール内の各ノードの vCPU 数。
例:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
必須
変更可
整数
事前入力: 8192
プール内の各ノードのメモリ容量(MiB)。4 の倍数である必要があります。
例:
nodePools" - name: "my-node-pool" memoryMB: 8192
注: このフィールドは、メガバイト数ではなくメモリのメビバイト数を指定します。1 メビバイトは、2^20 = 1,048,576 バイトです。1 メガバイトは、10^6 = 1,000,000 バイトです。
nodePools[i].replicas
必須
変更可
整数
事前入力: 3
有効な値: クラスタ内のすべてのノードプール内の未保持ノードの合計数が少なくとも 3 になっている必要があります。
プール内のノード数。
例:
nodePools: - name: "my-node-pool" replicas: 5
nodePools[i].bootDiskSizeGB
変更可
整数
事前入力: 40
デフォルト: 40
プール内の各ノードのブートディスクのサイズ(GiB 単位)。
例:
nodePools - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].osImageType
変更可
文字列
有効な値: ubuntu_containerd、cos、ubuntu_cgv2、cos_cgv2、windows
事前入力: ubuntu_cgv2
デフォルト: ubuntu_containerd
ノードプール内の VM で実行する OS イメージのタイプ
例:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
nodePools[i].osImage
nodePools[i].osImageType
= windows
の場合は必須
変更可
文字列
Windows VM テンプレートの名前。テンプレートは、en-US 言語 / リージョン タグを持つ Windows Server 2019 ISO に基づいている必要があります。
詳細については、Windows Server OS ノードプールのユーザーガイドをご覧ください。
nodePools[i].labels
変更可
マッピング
プール内の各 Kubernetes ノード オブジェクトに適用するラベル。
例:
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
セキュリティ上の理由から、kubelet は特定の名前空間で自身にラベルを適用できません。
予約済みノードラベルの Namespace は kubernetes.io
、k8s.io
、googleapis.com
です。
nodePools[i].taints
変更可
オブジェクトの配列。それぞれがプール内の各ノードに適用される Kubernetes taint を記述します。taint は、1 つの effect
に関連付けられた Key-Value ペアです。taint は、Pod のスケジューリングの toleration で使用されます。effect
には、NoSchedule
、PreferNoSchedule
、NoExecute
のいずれかを指定します。
例:
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].vsphere.datastore
変更可
文字列
デフォルト: vCenter.datastore
の値
ノードが作成される vCenter データストアの名前。
例:
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
このフィールドの値を指定する場合は、nodePools[i].vsphere.storagePolicyName
の値を指定しないでください。
nodePools[i].vsphere.storagePolicyName
変更可
文字列
デフォルト: vCenter.storagePolicyName
の値
プール内のノードの VM ストレージ ポリシーの名前。
詳細については、ストレージ ポリシーを構成するをご覧ください。
例:
nodePools: - name: "my-node-pool" vsphere: storagePolicyName: "my-storage-policy"
このフィールドの値を指定する場合は、nodePools[i].vsphere.datastore
の値を指定しないでください。
nodePools[i].vsphere.hostgroups
VM-Host アフィニティを使用するようにクラスタを構成する場合は、このセクションに値を設定します。
変更可能
文字列の配列。各文字列は、ホスト DRS グループの名前です。
配列に含めることができる要素は 1 つだけです。
例:
nodePools: - name: "my-node-pool" vsphere: hostgroups: - "my-hostgroup"
nodePools[i].vsphere.tags
変更可
オブジェクトの配列。それぞれが、ノードプール内の VM に配置される vSphere タグを記述します。
各タグにはカテゴリと名前があります。
例:
nodePools: - name: "my-node-pool" vsphere: tags: - category: "purpose" name: "testing"
ノードプール内のすべての VM にタグを追加する場合は、vCenter ユーザー アカウントに次の vSphere のタグ付け権限が必要です。
- vSphere Tagging.Assign または vSphere タグ付け解除
- vSphere Tagging.Assign またはオブジェクトに対する vSphere タグ付け解除(vSphere 7)
nodePools[i].autoscaling
変更可
ノードプールの自動スケーリングを有効にする場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
nodePools[i].autoscaling.minReplicas
変更可
整数
有効な値: 1 以上
事前入力: 0
オートスケーラーがプールに対して設定できるノードの最小数。
例:
nodePools: - name: "my-node-pool" autoscaling: minReplicas: 5
nodePools[i].autoscaling.maxReplicas
変更可
整数
事前入力: 0
オートスケーラーがプールに対して設定できるノードの最大数。
例:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
loadBalancer.kind
= "MetalLB"
の場合に関連
変更可
ブール値
事前入力: true
デフォルト: false
プール内のノードで MetalLB スピーカーを実行できるようにする場合は、true
に設定します。それ以外の場合は、false
に設定します。
詳細については、MetalLB によるバンドルされた負荷分散をご覧ください。
例:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
nodePools[i].updateStrategy.rollingUpdate.maxSurge
プレビュー
変更可
整数
デフォルト: 1
更新またはアップグレード中に同時に更新できるノードプール内のマシンの最大数。
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
antiAffinityGroups.enabled
変更可
ブール値
事前入力: true
デフォルト: true
このフィールドが true
の場合、Google Distributed Cloud はユーザークラスタのノードに対して VMware Distributed Resource Scheduler(DRS)の反アフィニティ ルールを作成し、それらをデータセンターの少なくとも 3 つの物理 ESXi ホストに分散させます。
この機能を使用するには、vSphere 環境が次の条件を満たしている必要があります。
VMware DRS が有効になっていること。VMware DRS には、vSphere Enterprise Plus ライセンス エディションが必要です。
vSphere ユーザー アカウントに
Host.Inventory.Modify cluster
権限があること。利用可能なホストが少なくとも 4 つ存在すること。
このルールでは、クラスタノードを 3 つの ESXi ホストに分散させることが要件ですが、少なくとも 4 つの ESXi ホストを利用できるようにすることを強くおすすめします。
前述のとおり、vSphere スタンダード ライセンスがある場合、VMware DRS を有効にすることはできません。
DRS が有効になっていない場合や、vSphere VM をスケジュール設定できるホストが 4 つ以上ない場合は、antiAffinityGroups.enabled
を false
に設定します。
例:
antiAffinityGroups: enabled: false
enableVMTracking
プレビュー
変更不可
事前入力: false
vSphere タグで VM のトラッキングを有効にする場合は、true
に設定します。それ以外の場合は、false
に設定します。
詳細については、VM トラッキングを有効にするをご覧ください。
例:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
変更可
整数
有効な値: 0 または 1
事前入力: 0
デフォルト: TODO: REVIEWERS: DOES THIS HAVE A DEFAULT VALUE?
一度に更新するノードプールの数。1
の値は、一度に更新できる 1 つのノードプールをに指定します。0
の値は、一度に更新できるノードプールの数を無制限に指定します。
例:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
プレビュー
変更可
整数
デフォルト: 1
更新またはアップグレード中に同時に更新できるノードプール内のマシンの最大数。独自の更新戦略を指定しないすべてのノードプールに適用されます。
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
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"
gkeConnect
必須
不変
このセクションでは、Google Cloud フリートにクラスタを登録するために使用する Google Cloud プロジェクトとサービス アカウントに関する情報が含まれます。
gkeConnect.projectID
必須
不変
文字列
フリート ホスト プロジェクトの ID。
新規クラスタの場合、このプロジェクト ID は stackdriver.projectID
と cloudAuditLogging.projectID
で設定した ID と同じでなければなりません。プロジェクト ID が同じでない場合、クラスタの作成は失敗します。この要件は、既存のクラスタには適用されません。
例:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
変更不可
文字列
デフォルト: global
各クラスタのフリート メンバーシップは、Fleet サービス(gkehub.googleapis.com
)と Connect サービス(gkeconnect.googleapis.com
)で管理されます。サービスのロケーションは、グローバルにもリージョンにもできます。1.28 以降では、必要に応じて、Fleet と Connect サービスが実行される Google Cloud リージョンを指定できます。指定しない場合は、サービスのグローバル インスタンスが使用されます。次の点にご注意ください。
1.28 より前に作成されたユーザー クラスタは、グローバルの Fleet と Connect サービスによって管理されます。
GKE On-Prem API クライアント(Google Cloud コンソール、Google Cloud CLI、Terraform)を使用して作成された新しいクラスタは、GKE On-Prem API に指定したリージョンと同じリージョンを使用します。
新しいクラスタの場合、このフィールドを指定する場合、指定するリージョンは
cloudAuditLogging.clusterLocation
、stackdriver.clusterLocation
、gkeOnPremAPI.location
に構成されたリージョンと同じでなければなりません。リージョンが同じでない場合、クラスタの作成は失敗します。
例:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
必須
変更可
文字列
接続登録サービス アカウントの JSON 鍵ファイルのパス。
このフィールドの値を更新するには、gkectl update cluster
を使用します。
connect-register サービス アカウント キーの変更については、サービス アカウント キーのローテーションをご覧ください。
例:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.registerServiceAccountKey.secretRef.version
変更可
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
connect-register サービス アカウントの JSON キーを保持するために、管理クラスタで準備された Secret のバージョン。
例:
gkeConnect: registerServiceAccountKey: secretRef: version: "1"
gkeOnPremAPI
1.16 以降では、Google Cloud プロジェクトで GKE On-Prem API が有効になっている場合、プロジェクト内のすべてのクラスタが、stackdriver.clusterLocation
で構成されたリージョンの GKE On-Prem API に自動的に登録されます。
GKE On-Prem API のプロジェクトにすべてのクラスタを登録する場合は、始める前にの手順に沿って、プロジェクト内の GKE On-Prem API を有効にしてから使用します。
GKE On-Prem API にクラスタを登録しない場合は、このセクションを追加して、
gkeOnPremAPI.enabled
をfalse
に設定します。プロジェクトにクラスタを登録しない場合は、プロジェクトでgkeonprem.googleapis.com
(GKE On-Prem API のサービス名)を無効にします。手順については、サービスの無効化をご覧ください。
GKE On-Prem API にユーザー クラスタを登録すると、Google Cloud コンソール、Google Cloud CLI、Terraform などの標準ツールを使用して、クラスタのライフサイクルを管理できます。さらに、クラスタを登録すると、コンソールまたは gcloud CLI を使用してクラスタの詳細を表示できます。たとえば、gcloud
コマンドを実行して、ユーザー クラスタに関する情報を取得できます。
このセクションを追加してクラスタを作成または更新した後、セクションを削除してクラスタを更新すると、更新が失敗します。
gkeOnPremAPI.enabled
変更可
ブール値
デフォルト: true
デフォルトでは、プロジェクトで GKE On-Prem API が有効になっている場合、クラスタは GKE On-Prem API に登録されます。クラスタを登録しない場合は false
に設定します。
クラスタを GKE On-Prem API に登録した後、クラスタの登録を解除する必要がある場合は、次の変更を行い、クラスタを更新します。
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
変更不可
文字列
デフォルト: stackdriver.clusterLocation
GKE On-Prem API が実行され、クラスタ メタデータが保存される Google Cloud リージョン。サポートされているリージョンのいずれかを選択します。gkeConnect.location
、stackdriver.clusterLocation
、cloudAuditLogging.clusterLocation
で構成されているリージョンと同じリージョンを使用する必要があります。gkeOnPremAPI.enabled
が false
の場合、このフィールドを含めないでください。
stackdriver
デフォルトで必須
変更可
クラスタに対して Cloud Logging と Cloud Monitoring を有効にする場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
デフォルトでは、このセクションは必須です。つまり、このセクションを含めない場合は、gkectl create cluster
を実行する際に --skip-validation-stackdriver
フラグを含める必要があります。
このセクションは、GKE On-Prem API クライアントを使用するユーザー クラスタのライフサイクルを管理する場合に必要です。
stackdriver.projectID
Logging と Monitoring の場合は必須
変更不可
文字列
フリート ホスト プロジェクトの ID。
新規クラスタの場合、このプロジェクト ID は gkeConnect.projectID
と cloudAuditLogging.projectID
で設定した ID と同じでなければなりません。プロジェクト ID が同じでない場合、クラスタの作成は失敗します。この要件は、既存のクラスタには適用されません。
必要に応じて、このプロジェクトのログルーターを構成して、別のプロジェクトのログバケットにログを転送できます。ログルーターの構成方法については、サポートされる宛先をご覧ください。
例:
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
Logging と Monitoring の場合は必須
不変
文字列
事前入力: 「us-central1」
ログを保存する Google Cloud リージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。
新しいクラスタの場合、構成ファイルで gkeOnPremAPI
セクションと cloudAuditLogging
セクションを設定すれば、ここで設定するリージョンは、gkeConnect.location
、gkeOnPremAPI.location
、cloudAuditLogging.clusterLocation
で設定したリージョンと同じにする必要があります。リージョンが同じでない場合、クラスタの作成は失敗します。
例:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
変更不可
ブール値
事前入力: false
クラスタのネットワークが VPC によって管理されている場合は、true
に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。それ以外の場合は false
に設定します。
例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
Logging と Monitoring の場合は必須
変更可
文字列
ロギング モニタリング サービス アカウントの JSON 鍵ファイルのパス。
このフィールドの値を更新するには、gkectl update cluster
を使用します。
logging-monitoring サービス アカウント キーの変更については、サービス アカウント キーのローテーションをご覧ください。
例:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.serviceAccountKey.secretRef.version
変更可
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
logging-monitoring サービス アカウントの JSON キーを保持するために、管理クラスタで準備された Secret のバージョン。
例:
stackdriver: serviceAccountKey: secretRef: version: "1"
stackdriver.disableVsphereResourceMetrics
変更可
ブール値
事前入力: false
デフォルト: false
vSphere からの指標の収集を無効にする場合は、true
に設定します。それ以外の場合は、false
に設定します。
例:
stackdriver: disableVsphereResourceMetrics: 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 鍵ファイルのパス。
このフィールドの値を更新するには、gkectl update cluster
を使用します。
BigQuery サービス アカウント キーの変更については、サービス アカウント キーのローテーションをご覧ください。
例:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.bigQueryServiceAccountKey.secretRef.version
変更可
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
BigQuery サービス アカウントの JSON キーを保持するために、管理クラスタで準備された Secret のバージョン。
例:
gkeConnect: bigQueryServiceAccountKey: secretRef: version: "1"
usageMetering.enableConsumptionMetering
プレビュー
使用状況測定で必須
不変
ブール値
事前入力: false
使用量をベースとした測定を有効にするには、これを true
に設定します。それ以外の場合は false に設定します。
例:
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
クラスタの Kubernetes API サーバーの監査ログを Cloud Audit Logs と統合する場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
cloudAuditLogging.projectID
Cloud Audit Logs の場合は必須
不変
文字列
フリート ホスト プロジェクトの ID。新規クラスタの場合、このプロジェクト ID は gkeConnect.projecID
と stackdriver.projectID
で設定した ID と同じでなければなりません。プロジェクト ID が同じでない場合、クラスタの作成は失敗します。この要件は、既存のクラスタには適用されません。
必要に応じて、このプロジェクトのログルーターを構成して、別のプロジェクトのログバケットにログを転送できます。ログルーターの構成方法については、サポートされる宛先をご覧ください。
例:
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
Cloud Audit Logs の場合は必須
不変
文字列
監査ログを保存する Google Cloud のリージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。
新しいクラスタの場合、構成ファイルで gkeOnPremAPI
セクションと stackdriver
セクションを設定すれば、ここで設定するリージョンは、gkeConnect.location
、gkeOnPremAPI.location
、stackdriver.clusterLocation
で設定したリージョンと同じにする必要があります。リージョンが同じでない場合、クラスタの作成は失敗します。
例:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
Cloud Audit Logs の場合は必須
変更可
文字列
監査ログ サービス アカウントの JSON 鍵ファイルのパス。
このフィールドの値を更新するには、gkectl update cluster
を使用します。
audit-logging サービス アカウント キーの変更については、サービス アカウント キーのローテーションをご覧ください。
例:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
cloudAuditLogging.serviceAccountKey.secretRef.version
変更可
文字列
有効な値: 整数文字列または latest
デフォルト値: latest
audit-logging サービス アカウントの JSON キーを保持するために、管理クラスタで準備された Secret のバージョン。
例:
cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
autoRepair.enabled
省略可
変更可
ブール値
事前入力: true
ノードの自動修復を有効にするには、これを true
に設定します。それ以外の場合は、false
に設定します。
例:
autoRepair: enabled: true
secretsEncryption
外部 KMS(鍵管理サービス)やその他の依存関係を必要とせずに Secret を暗号化する場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
secretsEncryption.mode
Secret の暗号化の場合は必須
不変
文字列
有効な値:「GeneratedKey」
事前入力:「GeneratedKey」
Secret の暗号化モード。
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Secret の暗号化の場合は必須
変更可
整数
事前入力: 1
鍵のバージョン番号に使用するために選んだ整数。最初は 1
を使用することをおすすめします。
既存クラスタのこのフィールドの更新については、常にオンの Secret の暗号化をご覧ください。
例:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
変更可
ブール値
事前入力: false
Secret の暗号化を無効にするには、true
に設定します。それ以外の場合は、false
に設定します。
既存クラスタのこのフィールドの更新については、常にオンの Secret の暗号化をご覧ください。
例:
secretsEncryption: generatedKey: disabled: false