このドキュメントでは、バージョン 1.30 以降の Google Distributed Cloud の管理クラスタ構成ファイル内のフィールドについて説明します。
構成ファイルのテンプレートの生成
gkeadm
を使用して管理ワークステーションを作成した場合、gkeadm
により管理クラスタの構成ファイル用のテンプレートが生成されます。また、gkeadm
によって一部のフィールドに入力されます。
管理ワークステーションの作成に gkeadm
を使用していない場合、gkectl
を使用して管理クラスタの構成ファイルのテンプレートを生成できます。
管理クラスタの構成ファイルのテンプレートを生成するには:
gkectl create-config admin --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
OUTPUT_FILENAME
は、生成されたテンプレートの任意のパスに置き換えます。このフラグを省略すると、gkectl
はファイルに admin-cluster.yaml
という名前を付け、現在のディレクトリに配置します。
VERSION
は、1.29 パッチリリースのフルバージョンに置き換えます。(例: gkectl create-config admin --gke-on-prem-version=1.31.200-gke.58
)。このバージョンは、gkectl
バージョン以下にする必要があります。このフラグを省略すると、生成された Config テンプレートには、最新の 1.31 パッチに基づく値が入力されます。
テンプレート
構成ファイルの入力
次のセクションで説明するように、構成ファイルでフィールド値を入力します。
enableAdvancedCluster
1.31 以降
新しいクラスタでのみ使用可能
プレビュー
省略可
変更不可
ブール値
事前入力: false
デフォルト: false
enableAdvancedClusters
を true
に設定して、高度なクラスタを有効にします。このフラグを有効にすると、基盤となる Google Distributed Cloud ソフトウェアは、より拡張可能なアーキテクチャを可能にするコントローラをデプロイします。高度なクラスタを有効にすると、トポロジ ドメインなどの新機能や機能にアクセスできます。infraConfigFilePath
が構成されている場合、このフィールドは必須です。
1.30 以前
利用できません。
name
省略可
文字列
デフォルト: 接頭辞「gke-admin-」で始まるランダムな名前
クラスタに付ける名前。
例:
name: "my-admin-cluster"
bundlePath
必須
変更可
文字列
Google Distributed Cloud バンドル ファイルのパス。
Google Distributed Cloud のフルバンドル ファイルには、Google Distributed Cloud の特定のリリースのすべてのコンポーネントが含まれています。管理ワークステーションを作成すると、フルバンドルが次の場所に追加されます。
/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz
例:
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.10.0-gke.8.full.tgz"
preparedSecrets.enabled
infraConfigFilePath
が構成されている場合は、このフィールドを削除します。
プレビュー
省略可
変更不可
ブール値
事前入力: false
デフォルト: false
管理クラスタの準備済みの認証情報を使用する場合は、これを true
に設定します。それ以外の場合は、false
に設定するか、フィールドを省略します。
例:
preparedSecrets: enabled: true
vCenter
このセクションには、vSphere 環境と vCenter Server への接続に関する情報を掲載しています。
infraConfigFilePath
が構成されている場合は、このセクション全体を削除します。それ以外の場合、このセクションは必須で変更できません。
vCenter.address
必須
不変
文字列
vCenter Server の IP アドレスまたはホスト名。
詳細については、vCenter Server アドレスの確認をご覧ください。
例:
vCenter: address: "203.0.113.100"
vCenter: address: "my-vcenter-server.my-domain.example"
vCenter.datacenter
必須
不変
文字列
vSphere データセンターの相対パス。
指定する値は、/
という名前のルートフォルダを基準とします。
データセンターがルートフォルダにある場合、値はデータセンターの名前になります。
例:
vCenter: datacenter: "my-data-center"
それ以外の場合は、値は 1 つ以上のフォルダとデータセンターの名前を含む相対パスになります。
例:
vCenter: datacenter: "data-centers/data-center-1"
vCenter.cluster
必須
不変
文字列
管理クラスタ VM を実行する ESXi ホストを表す vSphere クラスタの相対パス。この vSphere クラスタは、vCenter データセンターの物理 ESXi ホストのサブセットを表します。
指定する値は、/.../DATA_CENTER/vm/
を基準とします。
vSphere クラスタが /.../DATA_CENTER/vm/
フォルダにある場合、値は vSphere クラスタの名前です。
例:
vCenter: cluster: "my-vsphere-cluster"
それ以外の場合、値は 1 つ以上のフォルダと vSphere クラスタの名前を含む相対パスになります。
例:
vCenter: cluster: "clusters/vsphere-cluster-1"
vCenter.resourcePool
必須
不変
文字列
管理クラスタ VM の vCenter リソースプール。
デフォルトのリソースプールを使用する場合は、これを VSPHERE_CLUSTER/Resources
に設定します。
例:
vCenter: resourcePool: "my-vsphere-cluster/Resources"
すでに作成したリソースプールを使用する場合は、これにリソースプールの相対パスを設定します。
指定する値は /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
を基準とします。
リソースプールが /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
の直接の子である場合、値はリソースプールの名前となります。
例:
vCenter: resourcePool: "my-resource-pool"
それ以外の場合、値は 2 つ以上のリソースプールを含む相対パスになります。
例:
vCenter: resourcePool: "resource-pool-1/resource-pool-2"
vCenter.datastore
vCenter.storagePolicyName
が指定されていない場合は必須
変更不可
文字列
管理クラスタの vSphere データストアの名前。
指定する値は、パスではなく、名前にする必要があります。値にはフォルダを含めないでください。
例:
vCenter: datastore: "my-datastore"
vCenter.datastore
または vCenter.storagePolicyName
のいずれかの値を指定する必要があります。両方を指定することはできません。このフィールドの値を指定する場合は、vCenter.storagePolicyName
の値を指定しないでください。vCenter.datastore
フィールドは、データストアをストレージ ポリシー ベース管理(SPBM)に移行する際にフィールドを空の文字列に設定する場合を除き、変更できません。
vCenter.storagePolicyName
vCenter.datastore
が指定されていない場合は必須
変更不可
文字列
クラスタノードの VM ストレージ ポリシーの名前。
ストレージ ポリシーを使用するには、管理クラスタが高可用性(HA)である必要があります。
詳細については、ストレージ ポリシーを構成するをご覧ください。
vCenter.datastore
または vCenter.storagePolicyName
のいずれかの値を指定する必要があります。両方を指定することはできません。このフィールドの値を指定する場合は、vCenter.datastore
の値を指定しないでください。
vCenter.caCertPath
必須
変更可
文字列
vCenter Server の CA 証明書のパス。
詳細については、vCenter CA 証明書の取得をご覧ください。
既存のクラスタのこのフィールドを更新する方法については、vCenter 証明書の参照を更新するをご覧ください。
例:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"
vCenter.credentials.fileRef.path
必須
文字列
vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。ユーザー アカウントには管理者ロールまたは同等の権限が必要です。vSphere の要件をご覧ください。
gkectl update
を使用すると、既存のクラスタのこのフィールドを更新できます。
vCenter 認証情報を更新する方法については、クラスタ認証情報の更新をご覧ください。
例:
vCenter: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
vCenter.credentials.fileRef.entry
必須
文字列
vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
gkectl update
を使用すると、既存のクラスタのこのフィールドを更新できます。
vCenter 認証情報を更新する方法については、クラスタ認証情報の更新をご覧ください。
例:
vCenter: credentials: fileRef: entry: "vcenter-creds"
vCenter.folder
省略可
不変
文字列
デフォルト: データセンター全体のフォルダ
事前に作成していた vSphere フォルダの相対パス。このフォルダには、管理クラスタ VM が保持されます。
値を指定しない場合、管理クラスタ VM は /.../DATA_CENTER/vm/
に配置されます。
値を指定すると、/.../DATA_CENTER/vm/
を基準とします。
値にはフォルダの名前を指定できます。
例:
vCenter: folder: "my-folder"
複数のフォルダを含む相対パスを値に指定することもできます。
例:
vCenter: folder: "folders/folder-1"
vCenter.dataDisk
このフィールドに値を指定しないでください。フィールドを削除するか、コメントアウトしたままにします。
network
必須
不変
このセクションには、管理クラスタ ネットワークに関する情報が含まれます。
network.hostConfig
このセクションには、クラスタノードである VM で使用される NTP サーバー、DNS サーバー、DNS 検索ドメインに関する情報が保持されます。
infraConfigFilePath
が構成されている場合は、このセクション全体を削除します。それ以外の場合、このセクションは必須で不変です。
network.hostConfig.dnsServers
network.hostConfig
セクションに値が入力されている場合は必須です。
変更不可
文字列の配列。
配列内の要素の最大数は 3 つです。
VM の DNS サーバーのアドレス。
例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
network.hostConfig
セクションに値が入力されている場合は必須です。
不変
文字列の配列
VM が使用する時刻サーバーのアドレス。
例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
省略可
不変
文字列の配列
VM が使用する DNS 検索ドメイン。これらのドメインは、ドメイン検索リストの一部として使用されます。
例:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
必須
変更不可
文字列
事前入力: static
デフォルト: dhcp
クラスタノードが DHCP サーバーから IP アドレスを取得するようにするには、これを "dhcp"
に設定します。クラスタノードに、指定したリストから静的 IP アドレスを選択させる場合は、"static"
に設定します。
ほとんどの場合、管理クラスタのコントロール プレーン ノードには常に IP アドレスを指定する必要があるので、static
を指定する必要があります。DHCP は、次の場合に IP アドレスを提供するためにのみ使用されます。
ユーザー クラスタで
enableControlplaneV2
が有効になっていない場合は、管理クラスタ内のユーザー クラスタのコントロール プレーン ノードに DHCP を使用できます。バージョン 1.16 以前では、非 HA 管理クラスタのアドオンノードは DHCP から IP アドレスを取得できます。バージョン 1.28 以降では、管理クラスタは HA である必要があります。また、アドオンノードはありません。
例:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
クラスタの IP ブロック ファイルの絶対パスまたは相対パス。
infraConfigFilePath
が構成されている場合、このフィールドは必須です。
このフィールドは、次のケースでも必須です。
1.16 以前の非 HA 管理クラスタ: IP ブロック ファイルに、コントロール プレーン ノードとアドオンノードの IP アドレスを一覧表示します。
1.16 以前の HA 管理クラスタ: IP ブロック ファイルにアドオンノードの IP アドレスを一覧表示します。
1.29 以前の kubeception ユーザー クラスタ: 管理クラスタの IP ブロック ファイルに、ユーザー クラスタ コントロール プレーン ノードの IP アドレスを一覧表示します。
変更不可
文字列
例:
network: ipMode: ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml"
network.serviceCIDR
必須
変更不可
文字列
可能な最小範囲: /24
可能な最大範囲: /12
事前入力: 10.96.232.0/24
デフォルト: 10.96.232.0/24
クラスタ内の Service に使用される IP アドレスの範囲(CIDR 形式)。
例:
network: serviceCIDR: "10.96.232.0/24"
network.podCIDR
必須
変更不可
文字列
可能な最小範囲: /18
可能な最大範囲: /8
事前入力: 192.168.0.0/16
デフォルト: 192.168.0.0/16
クラスタ内の Pod に使用される IP アドレスの範囲(CIDR 形式)。
例:
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
クラスタノードの vSphere ネットワークの名前。
infraConfigFilePath
が構成されている場合は、このフィールドを削除します。それ以外の場合、このフィールドは必須で変更できません。
例:
network: vCenter: networkName: "my-network"
名前に特殊文字が含まれる場合は、エスケープ シーケンスを使用する必要があります。
特殊文字 | エスケープ シーケンス |
---|---|
スラッシュ(/ ) |
%2f |
バックスラッシュ(\ ) |
%5c |
パーセント記号(% ) |
%25 |
データセンターでネットワーク名が一意でない場合は、フルパスを指定できます。
例:
network: vCenter: networkName: "/data-centers/data-center-1/network/my-network"
network.controlPlaneIPBlock
管理クラスタのコントロール プレーン ノードのネットワーク情報。
infraConfigFilePath
が構成されている場合は、このセクション全体を削除します。それ以外の場合、このセクションは必須で不変です。
network.controlPlaneIPBlock.netmask
必須
不変
文字列
コントロール プレーン ノードを持つネットワークのネットマスク。
例:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
必須
不変
文字列
コントロール プレーン ノードのデフォルト ゲートウェイの IP アドレス。
例:
network: controlPlaneIPBlock: gateway: "172.16.22.1"
network.controlPlaneIPBlock.ips
必須
変更不可
3 つのオブジェクトの配列。それぞれに IP アドレスとオプションのホスト名をがあります。
これらは、コントロール プレーン ノードに割り当てられる IP アドレスです。
例:
network: controlPlaneIPBlock: ips: - ip: "172.16.22.6" hostname: "admin-cp-vm-1" - ip: "172.16.22.7" hostname: "admin-cp-vm-2" - ip: "172.16.22.8" hostname: "admin-cp-vm-3"
infraConfigFilePath
1.31
このフィールドにパスを指定すると、トポロジ ドメインが有効になります。
プレビュー
省略可
文字列
変更可
vSphere インフラストラクチャ構成ファイルの完全パスを指定します。
例:
infraConfigFilePath: "/my-config-folder/vsphere-infrastructure.yaml"
パスを追加するだけでなく、vSphere インフラストラクチャ構成ファイルを該当するディレクトリにコピーします。
infraConfigFilePath
にパスを追加する場合は、管理クラスタとユーザー クラスタの構成ファイルに次の変更を加える必要があります。
管理クラスタ構成ファイルの変更
管理クラスタ構成ファイルから次の行を削除します。この情報は、トポロジ ドメインごとに vSphere インフラストラクチャ構成ファイルで構成します。
vCenter
:vCenter
セクション全体を削除します。network.hostConfig
:network.hostConfig
セクション全体を削除します。network.vCenter.networkName
: このフィールドを削除します。
管理クラスタの構成ファイルで次の変更を行います。
network.controlPlaneIPBlock
: セクション全体を削除します。代わりに、IP ブロック ファイルで管理クラスタのコントロール プレーン ノードの IP アドレスを指定します。preparedSecrets
: このフィールドを削除します。トポロジ ドメインが有効になっている場合、準備済み認証情報はサポートされていません。このフィールドを削除します。
次のフィールドに値を入力する必要があります。
enableAdvancedCluster
:true
に設定します。network.ipMode.ipBlockFilePath
: 管理クラスタ IP ブロック ファイルの完全パスまたは相対パスに設定します。loadBalancer.kind
:"ManualLB"
に設定します。"ManualLB"
は、Google Distributed Cloud で利用可能な唯一のマルチサブネット(レイヤ 3)ロード バランシング オプションです。
ユーザー クラスタの構成ファイルの変更
ユーザー クラスタ構成ファイルから次の行を削除します。この情報は、トポロジ ドメインごとに vSphere インフラストラクチャ構成ファイルで構成します。
vCenter
:vCenter
セクション全体を削除します。network.hostConfig
:network.hostConfig
セクション全体を削除します。network.vCenter.networkName
: このフィールドを削除します。masterNode.vsphere
: セクション全体を削除します。nodePools[i].vsphere.datastore
とnodePools[i].vsphere.storagePolicyName
: これらのフィールドを削除します。
ユーザー クラスタ構成ファイルで次の変更を行います。
network.controlPlaneIPBlock
: セクション全体を削除します。代わりに、IP ブロック ファイルで管理クラスタのコントロール プレーン ノードの IP アドレスを指定します。preparedSecrets
: このフィールドを削除します。トポロジ ドメインが有効になっている場合、準備済み認証情報はサポートされていません。nodePools[i].vsphere.hostgroups
: このフィールドを削除します。トポロジ ドメインが有効になっている場合、VM とホストのアフィニティはサポートされていません。multipleNetworkInterfaces
: このフィールドをfalse
に設定します。トポロジ ドメインが有効になっている場合、Pod の複数のネットワーク インターフェースはサポートされていません。storage.vSphereCSIDisabled
: vSphere CSI コンポーネントのデプロイを無効にするには、このフィールドをtrue
に設定します。
次のフィールドに値を入力する必要があります。
enableAdvancedCluster
: ユーザー クラスタの構成ファイルでtrue
に設定します。network.ipMode.ipBlockFilePath
: ユーザー クラスタ IP ブロック ファイルの完全パスまたは相対パスに設定します。loadBalancer.kind
:"ManualLB"
に設定します。"ManualLB"
は、Google Distributed Cloud で利用可能な唯一のマルチサブネット(レイヤ 3)ロード バランシング オプションです。
1.30 以前
利用できません。
loadBalancer
このセクションでは、管理クラスタのロードバランサに関する情報について説明します。
loadBalancer.vips.controlPlaneVIP
必須
不変
文字列
管理クラスタの Kubernetes API サーバー用にロードバランサで構成するために選択した IP アドレス。
例:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.kind
使用するロードバランサの種類を指定します。
1.30 以降
必須
変更不可
文字列
事前入力: MetalLB
infraConfigFilePath
が構成されている場合(1.31 以降で使用可能)、これを "ManualLB"
に設定します。それ以外の場合は、"ManualLB"
または "MetalLB"
に設定します。
新しい機能や高度な機能を有効にするため、サードパーティのロードバランサ(F5 BIG-IP や Citrix など)を使用している場合は "ManualLB"
を使用し、バンドルされたソリューションの場合は "MetalLB"
を使用します。
以前のバージョンとの違いは次のとおりです。
1.30 以降では、新しい管理クラスタで値
"F5BigIP"
は使用できません。1.28 以降では、新しい管理クラスタで値
"Seesaw"
は使用できません。
これらのロードバランサを使用している既存のクラスタがある場合は、次の移行ガイドをご覧ください。
例:
loadBalancer:
kind: "MetalLB"
1.28、1.29
必須
変更不可
文字列
事前入力: MetalLB
文字列。これを "ManualLB"
、"F5BigIP"
、"MetalLB"
のいずれかに設定します。
新しい機能や高度な機能を有効にするため、サードパーティのロードバランサ(F5 BIG-IP や Citrix など)を使用している場合は "ManualLB"
を使用し、バンドルされたソリューションの場合は "MetalLB"
を使用することをおすすめします。
1.28 以降では、新しい管理クラスタで値 "Seesaw"
は使用できません。Seesaw ロードバランサを使用する既存のクラスタがある場合は、Seesaw ロードバランサから MetalLB に移行するをご覧ください。
例:
loadBalancer:
kind: "MetalLB"
1.16 以前
必須
変更不可
文字列
事前入力: MetalLB
文字列。"ManualLB"
、"F5BigIP"
、"Seesaw"
、"MetalLB"
のいずれかに設定します
adminMaster.replicas
を 3
に設定すると、Seesaw ロードバランサを使用できません。
例:
loadBalancer:
kind: "MetalLB"
loadBalancer.manualLB
loadbalancer.kind
を "ManualLB"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
不変
loadBalancer.manualLB.ingressHTTPNodePort
このフィールドを構成ファイルから削除します。管理クラスタでは使用されません。
loadBalancer.manualLB.ingressHTTPSNodePort
このフィールドを構成ファイルから削除します。管理クラスタでは使用されません。
loadBalancer.manualLB.konnectivityServerNodePort
このフィールドを構成ファイルから削除します。管理クラスタでは使用されません。
loadBalancer.f5BigIP
1.30 以降
1.30 以降では、新しい管理クラスタの loadbalancer.kind
に値 "F5BigIP"
を指定できません。構成ファイルに loadBalancer.f5BigIP
セクションがある場合は、削除するかコメントアウトします。
新しい管理クラスタで F5 BIG-IP ロードバランサを引き続き使用できますが、構成は異なります。構成の詳細については、手動ロード バランシング モードの有効化をご覧ください。
既存の F5-BIG-IP ロードバランサがあり、クラスタ構成でこのセクションが使用されている場合は、1.29 以降にアップグレードした後に、手動ロード バランシングに移行することをおすすめします。
1.29
loadbalancer.kind
を "f5BigIP"
に設定した場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除します。
新しい機能や高度な機能を有効にするには、F5 BIG-IP ロードバランサの手動ロード バランシングを構成することをおすすめします。手動ロード バランシングを有効にするには、loadbalancer.kind
を "ManualLB"
に設定し、loadBalancer.manualLB
セクションに入力します。詳細については、手動ロード バランシング モードを有効にするをご覧ください。
既存の F5-BIG-IP ロードバランサがあり、クラスタ構成でこのセクションが使用されている場合は、1.29 以降にアップグレードした後に、手動ロード バランシングに移行することをおすすめします。
1.28 以前
loadbalancer.kind
を "f5BigIP"
に設定した場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除します。
新しい機能や高度な機能を有効にするには、F5 BIG-IP ロードバランサの手動ロード バランシングを構成することをおすすめします。手動ロード バランシングを有効にするには、loadbalancer.kind
を "ManualLB"
に設定し、loadBalancer.manualLB
セクションに入力します。詳細については、手動ロード バランシング モードを有効にするをご覧ください。
loadBalancer.f5BigIP.address
1.30 以降
新しいクラスタでは使用不可
loadBalancer.kind
= "f5BigIp"
の場合は必須
変更不可
文字列
F5 BIG-IP ロードバランサのアドレス。例:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
1.29 以前
loadBalancer.kind
= "f5BigIp"
の場合は必須
変更不可
文字列
F5 BIG-IP ロードバランサのアドレス。例:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
1.30 以降
新しいクラスタでは使用不可
loadBalancer.kind
= "f5BigIp"
の場合は必須
変更可
文字列
Google Distributed Cloud が F5 BIG-IP ロードバランサへの接続に使用できるアカウントのユーザー名とパスワードを含む認証情報構成ファイルのパス。
ユーザー アカウントには、ロードバランサの設定と管理を行うために十分な権限を持つユーザーロールが必要です。管理者ロールまたはリソース管理者ロールのどちらかで十分です。
gkectl update
を使用すると、既存のクラスタのこのフィールドを更新できます。
F5 BIG-IP 認証情報を更新する方法については、クラスタ認証情報の更新をご覧ください。
例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/admin-creds.yaml"
1.29 以前
loadBalancer.kind
の場合は必須 = "f5BigIp"
変更可
文字列
Google Distributed Cloud が F5 BIG-IP ロードバランサへの接続に使用できるアカウントのユーザー名とパスワードを含む認証情報構成ファイルのパス。
ユーザー アカウントには、ロードバランサの設定と管理を行うために十分な権限を持つユーザーロールが必要です。管理者ロールまたはリソース管理者ロールのどちらかで十分です。
gkectl update
を使用すると、既存のクラスタのこのフィールドを更新できます。
F5 BIG-IP 認証情報を更新する方法については、クラスタ認証情報の更新をご覧ください。
例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/admin-creds.yaml"
loadBalancer.f5BigIP.credentialsfileRef.entry
1.30 以降
新しいクラスタでは使用不可
loadBalancer.kind
= "f5BigIp"
の場合は必須
変更可
文字列
F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
gkectl update
を使用すると、既存のクラスタのこのフィールドを更新できます。
F5 BIG-IP 認証情報を更新する方法については、クラスタ認証情報の更新をご覧ください。
例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
1.29 以前
loadBalancer.kind
の場合は必須 = "f5BigIp"
変更可
文字列
F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
gkectl update
を使用すると、既存のクラスタのこのフィールドを更新できます。
F5 BIG-IP 認証情報を更新する方法については、クラスタ認証情報の更新をご覧ください。
例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
loadBalancer.f5BigIP.partition
1.30 以降
新しいクラスタでは使用不可
loadBalancer.kind
= "f5BigIp"
の場合は必須
変更不可
文字列
管理クラスタ用に作成した BIG-IP パーティションの名前。
例:
loadBalancer:
f5BigIP:
partition: "my-f5-admin-partition"
1.29 以前
loadBalancer.kind
= "f5BigIp"
の場合は必須
変更不可
文字列
管理クラスタ用に作成した BIG-IP パーティションの名前。
例:
loadBalancer:
f5BigIP:
partition: "my-f5-admin-partition"
loadBalancer.f5BigIP.snatPoolName
1.30 以降
新しいクラスタでは使用不可
省略可
loadBalancer.kind
= "f5BigIp"
の場合に関連
不変
文字列
SNAT を使用している場合は、SNAT プールの名前。SNAT を使用していない場合は、このフィールドを削除します。
例:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
1.29 以前
省略可
loadBalancer.kind
= "f5BigIp"
の場合に関連
変更不可
文字列
SNAT を使用している場合は、SNAT プールの名前。SNAT を使用していない場合は、このフィールドを削除します。
例:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
loadBalancer.seesaw
このセクションは使用しないでください。Seesaw ロードバランサは、バージョン 1.28 以降の新しい管理クラスタではサポートされていません。代わりに、MetalLB ロードバランサを新しい管理クラスタ用に構成することをおすすめします。MetalLB の構成の詳細については、MetalLB によるバンドルされたロード バランシングをご覧ください。
アップグレードされた非 HA 管理クラスタの Seesaw は引き続きサポートされますが、MetalLB に移行することをおすすめします。
antiAffinityGroups.enabled
省略可
変更可
ブール値
事前入力: true
DRS ルールの作成を有効にするには、この値を true
に設定します。それ以外の場合は false
に設定します。
例:
antiAffinityGroups: enabled: 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 ホストを利用できるようにすることを強くおすすめします。これにより、管理クラスタのコントロール プレーンが失われなくなります。たとえば、ESXi ホストが 3 つだけで、管理クラスタのコントロール プレーン ノードが障害が発生した ESXi ホストにあるとします。DRS ルールにより、残りの 2 つの ESXi ホストのいずれにもコントロール プレーン ノードは配置されなくなります。
前述のとおり、vSphere スタンダード ライセンスがある場合、VMware DRS を有効にすることはできません。
DRS が有効になっていない場合や、vSphere VM をスケジュール設定できるホストが 4 つ以上ない場合は、antiAffinityGroups.enabled
を false
に設定します。
adminMaster
変更不可
管理クラスタ内のコントロール プレーン ノードの構成設定。
adminMaster.cpus
プレビュー
省略可
不変
整数
事前入力: 4
デフォルト: 4
管理クラスタの各コントロール プレーン ノードの vCPU 数。
例:
adminMaster: cpus: 4
adminMaster.memoryMB
プレビュー
省略可
変更不可
整数
事前入力: 16384
デフォルト: 16384
管理クラスタの各コントロール プレーン ノードのメモリ容量(メビバイト)。
例:
adminMaster: memoryMB: 16384
adminMaster.replicas
1.28 以降
新しいクラスタの場合は必須
変更不可
整数
有効な値: 3
管理クラスタ内のコントロール プレーン ノードの数。1.28 以降では、新しい管理クラスタは高可用性(HA)である必要があります。3 つのコントロール プレーン ノードを持つ HA 管理クラスタを作成するには、このフィールドを 3
に設定します。
例:
adminMaster:
replicas: 3
1.16 以前
省略可
変更不可
整数
有効な値: 1 または 3
事前入力: 1
デフォルト: 1
管理クラスタ内のコントロール プレーン ノードの数。高可用性管理クラスタを作成する場合は、これを 3
に設定します。それ以外の場合は、1
に設定します。
これを 3
に設定した場合は、network.controlPlaneIPBlock
セクションと network.hostConfig
セクションにも入力する必要があります。
この値を 3
に設定すると、Seesaw ロードバランサは使用できません。
例:
adminMaster:
replicas: 3
adminMaster.topologyDomains
1.31 以降
infraConfigFilePath
が構成されている場合(トポロジ ドメインが有効になっている場合)、必要に応じてこのフィールドを含めます。
文字列の配列 | ただし、要素は 1 つだけサポートされます
不変
デフォルト: vSphere インフラストラクチャ構成ファイルで指定されている場合、vSphereInfraConfig.defaultTopologyDomain
管理クラスタのコントロール プレーン ノードは、このフィールドで指定されたトポロジ ドメインに分散されます。
1.30 以前
利用できません。
proxy
ネットワークがプロキシ サーバーの背後にある場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。ここで指定するプロキシ サーバーは、この管理クラスタが管理するユーザー クラスタで使用されます。
不変
proxy.url
proxy
セクションに値が入力されている場合は必須です。
変更不可
文字列
プロキシ サーバーの HTTP アドレス。スキームのデフォルト ポートと同じ場合でも、ポート番号を含めます。
例:
proxy: url: "http://my-proxy.example.local:80"
ここで指定するプロキシ サーバーは、Google Distributed Cloud クラスタで使用されます。また、管理ワークステーションで HTTPS_PROXY
環境変数を設定しない限り、管理ワークステーションはこの同じプロキシ サーバーを使用するように自動的に構成されます。
proxy.url
を指定する場合は、proxy.noProxy
も指定する必要があります。
管理クラスタのプロキシ構成を設定した後は、クラスタを再ビルドしない限り、構成の変更や削除はできません。
proxy.noProxy
省略可
不変
文字列
プロキシ サーバーを経由しない IP アドレス、IP アドレス範囲、ホスト名、ドメイン名のカンマ区切りのリスト。Google Distributed Cloud がこれらのアドレス、ホスト、ドメインのいずれかにリクエストを送信する場合、そのリクエストは直接送信されます。
例:
proxy: noProxy: "10.151.222.0/24,my-host.example.local,10.151.2.1"
privateRegistry
非公開コンテナ レジストリは、コンテナ イメージへのアクセスが認証済みユーザーに制限されているレジストリです。ユーザー クラスタがワークロード イメージにアクセスする必要がある場合は、このセクションに入力します。privateRegistry
セクションを構成すると、この管理クラスタによって管理されるすべてのユーザークラスタは、ここで構成したプライベート レジストリからワークロード イメージを pull します。
privateRegistry
セクションを構成すると、クラスタの作成またはアップグレードの前に gkectl prepare
を実行すると、gkectl
は Google Distributed Cloud システム イメージをプライベート レジストリに push します。クラスタの作成またはアップグレード中に、システム イメージがプライベート レジストリから pull されます。privateRegistry
セクションを構成しない場合、システム イメージは、コンポーネント アクセス サービス アカウントを使用して gcr.io/gke-on-prem-release
から pull されます。
次のような場合は、クラスタが gcr.io/gke-on-prem-release
ではなく非公開レジストリからシステム イメージを pull するように privateRegistry
セクションを構成することをおすすめします。
- セキュリティ上の懸念や規制要件により、 Google Cloud への接続を最小限に抑える必要がある。
- 組織で送信トラフィックがプロキシ サーバーを通過する必要がある場合、 Google Cloud に接続するネットワーク速度が遅い。
Google の Artifact Registry を非公開レジストリとして使用する場合は、ワークロード イメージの非公開レジストリとして Artifact Registry を使用するで構成手順をご覧ください。
privateRegistry.address
非公開レジストリの場合は必須
不変
文字列
非公開レジストリを実行するマシンの IP アドレスまたは FQDN(完全修飾ドメイン名)。
例:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
非公開レジストリの場合は必須
変更可
文字列
Google Distributed Cloud が非公開レジストリへのアクセスに使用できるアカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。
例:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
非公開レジストリの場合は必須
変更可
文字列
非公開レジストリのアカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.caCertPath
非公開レジストリの場合は必須
変更可
文字列
コンテナ ランタイムが非公開レジストリからイメージを pull する場合、レジストリは証明書を提示して自身の ID を証明する必要があります。レジストリの証明書は、認証局(CA)によって署名されます。コンテナ ランタイムは、CA 証明書を使用してレジストリの証明書を検証します。
このフィールドを CA 証明書のパスに設定します。
例:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
componentAccessServiceAccountKeyPath
必須
変更可
文字列
コンポーネント アクセス サービス アカウントの JSON キーファイルのパス。
例:
componentAccessServiceAccountKeyPath: "my-key-folder/access-key.json"
gkeConnect
必須
変更可
gkeConnect
セクションに入力すると、管理クラスタは作成後にフリートに自動的に登録されます。このセクションには、クラスタを登録するために必要な Google Cloud プロジェクトとサービス アカウントに関する情報が含まれます。
クラスタの作成または更新中に、管理クラスタにいくつかの RBAC ポリシーが構成されます。これらの RBAC ポリシーは、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 サービスによって管理されます。
新しいクラスタの場合、このフィールドを指定する場合、指定するリージョンは
cloudAuditLogging.clusterLocation
、stackdriver.clusterLocation
、gkeOnPremAPI.location
に構成されたリージョンと同じでなければなりません。リージョンが同じでない場合、クラスタの作成は失敗します。
例:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
必須
変更可
文字列
接続登録サービス アカウントの JSON 鍵ファイルのパス。
例:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
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
コマンドを実行してクラスタに関する情報を取得することもできます。
このセクションを追加して管理クラスタを作成または更新した後、セクションを削除してクラスタを更新すると、更新が失敗します。
gkeOnPremAPI.enabled
gkeOnPremAPI
セクションが含まれている場合は必須です。
変更可
ブール値
デフォルト: true
デフォルトでは、プロジェクトで GKE On-Prem API が有効になっている場合、クラスタは Anthos On-Prem API に登録されます。クラスタを登録しない場合は false
に設定します。
クラスタを GKE On-Prem API に登録した後、クラスタの登録を解除する必要がある場合は、次の変更を行い、クラスタを更新します。
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
不変
文字列
デフォルト: stackdriver.clusterLocation
GKE On-Prem API が実行され、クラスタ メタデータが保存されるリージョン。 Google Cloud サポートされているリージョンのいずれかを選択します。cloudAuditLogging.clusterLocation
、gkeConnect.location
、stackdriver.clusterLocation
で構成されているリージョンと同じリージョンを使用する必要があります。gkeOnPremAPI.enabled
が false
の場合、このフィールドを含めないでください。
stackdriver
デフォルトは必須
変更可
クラスタに対して Cloud Logging と Cloud Monitoring を有効にする場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
デフォルトでは、このセクションは必須です。つまり、このセクションを含めない場合は、gkectl create admin
を実行する際に --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
Cloud Monitoring の指標を転送して保存する Google Cloud リージョン。オンプレミス データセンターの近くのリージョンを選択することをおすすめします。
Cloud Logging ログのルーティングと保存場所は、ログルーター構成で指定します。ログ ルーティングの詳細については、転送とストレージの概要をご覧ください。
Stackdriver 演算子(stackdriver-operator
)は、このフィールドの値を各ログエントリと指標に接続してから、 Google Cloudに転送します。これらのラベルは、ログ エクスプローラと Metrics Explorer でログと指標をフィルタリングする場合に役立ちます。
新しいクラスタの場合、構成ファイルで gkeOnPremAPI
セクションと cloudAuditLogging
セクションを設定すれば、ここで設定するリージョンは、cloudAuditLogging.clusterLocation
、gkeConnect.location
、gkeOnPremAPI.location
で設定したリージョンと同じにする必要があります。リージョンが同じでない場合、クラスタの作成は失敗します。
例:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
省略可
変更不可
ブール値
事前入力: false
クラスタのネットワークが VPC によって管理されている場合は、これを true
に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。それ以外の場合は false
に設定します。
例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
Logging と Monitoring の場合は必須
変更可
文字列
ロギング モニタリング サービス アカウントの JSON 鍵ファイルのパス。
enableAdvancedCluster
を true
に設定してクラスタを作成する場合(トポロジ ドメインの設定に必要)、stackdriver.serviceAccountKeyPath
は cloudAuditLogging.serviceAccountKeyPath
と同じにする必要があります。
既存のクラスタでこのフィールドを更新する方法については、サービス アカウント キーのローテーションをご覧ください。
例:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.disableVsphereResourceMetrics
省略可
変更可
Logging と Monitoring に関連
ブール値
事前入力: false
デフォルト: false
これを true
に設定すると、vSphere からの指標の収集が無効になります。それ以外の場合は、false
に設定します。
このセクションは、Google Cloud コンソール のユーザー クラスタのライフサイクルを管理する場合に管理クラスタで必要です。
例:
stackdriver: disableVsphereResourceMetrics: true
cloudAuditLogging
クラスタの Kubernetes API サーバーの監査ログを Cloud Audit Logs と統合する場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
変更可
このセクションは、GKE On-Prem API クライアントを使用するユーザー クラスタのライフサイクルを管理する場合に管理クラスタで必要です。
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 鍵ファイルのパス。
enableAdvancedCluster
を true
に設定してクラスタを作成する場合(トポロジ ドメインの設定に必要)、cloudAuditLogging.serviceAccountKeyPath
は stackdriver.serviceAccountKeyPath
と同じにする必要があります。
既存のクラスタでこのフィールドを更新する方法については、サービス アカウント キーのローテーションをご覧ください。
例:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
clusterBackup.datastore
プレビュー
省略可
変更可
文字列
管理クラスタのバックアップを有効にする場合は、これをクラスタのバックアップを保存する vSphere データストアに設定します。
enableAdvancedCluster
を true
に設定してクラスタを作成する場合(トポロジ ドメインの設定に必要)、このセクションを削除します。管理クラスタを vSphere データストアにバックアップすることはできません。
例:
clusterBackup: datastore: "my-datastore"
autoRepair.enabled
省略可
変更可
ブール値
事前入力: true
ノードの自動修復を有効にするには、これを true
に設定します。それ以外の場合は false
に設定します。
このフィールドの値を更新するには、gkectl update admin
を使用します。
例:
autoRepair: enabled: true
secretsEncryption
外部 KMS(鍵管理サービス)やその他の依存関係を必要とせずに Secret を暗号化する場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。
不変
enableAdvancedCluster
を true
に設定してクラスタを作成する場合(トポロジ ドメインの設定に必要)、このセクションを削除します。この機能は、高度なクラスタではサポートされていません。
secretsEncryption.mode
Secret の暗号化の場合は必須
変更不可
文字列
有効な値: GeneratedKey
事前入力: GeneratedKey
Secret の暗号化モード。
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Secret の暗号化の場合は必須
変更可
整数
事前入力: 1
鍵のバージョン番号に使用するために選んだ整数。最初は 1
を使用することをおすすめします。
例:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
Secret の暗号化の場合は必須
変更可
ブール値
事前入力: false
Secret の暗号化を無効にするには、これを true
に設定します。それ以外の場合は、false
に設定します。
例:
secretsEncryption: generatedKey: disabled: false
osImageType
省略可
変更可
文字列
有効な値: ubuntu_containerd、cos、ubuntu_cgv2、cos_cgv2
事前入力: : ubuntu_cgv2
デフォルト: ubuntu_containerd
管理クラスタノードで実行する OS イメージのタイプ。
enableAdvancedCluster
を true
に設定してクラスタを作成する場合(トポロジ ドメインの設定に必要)、ubuntu-cgroupv2
と ubuntu_containerd
のみがサポートされます。
例:
osImageType: "cos"