ユーザー クラスタ構成ファイル 1.30

このページでは、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

テンプレート

apiVersion: v1
kind: UserCluster
# (Required) A unique name for this cluster
name: ""
# (Required) GKE on-prem version (example: 1.3.0-gke.16)
gkeOnPremVersion: ""
# # (Optional) Specify the prepared secret configuration which can be added or edited
# # only during cluster creation
# preparedSecrets:
#   # reference to the secret namespace for a group of secrets; it should be prepared
#   # beforehand by 'gkectl prepare secrets' command; it is immutable.
#   namespace: ""
# (Optional) Enable controlplane v2. Default is true
enableControlplaneV2: true
# # (Optional) vCenter configuration (default: inherit from the admin cluster)
# vCenter:
#   # # (Optional) vCenter server to use. Controlplane v2 needs to be enabled when the address
#   # # is different from that in the admin cluster configuration
#   # address: ""
#   datacenter: ""
#   cluster: ""
#   # Resource pool to use. Specify [VSPHERE_CLUSTER_NAME]/Resources to use the default
#   # resource pool
#   resourcePool: ""
#   # Storage policy to use for cluster VM storage and default StorageClass. Do not
#   # specify it together with datastore
#   storagePolicyName: ""
#   # # Datastore to use for cluster VM storage and default StorageClass. Do not specify
#   # # it together with storagePolicyName
#   # datastore: ""
#   # Provide the path to vCenter CA certificate pub key for SSL verification
#   caCertPath: ""
#   # The credentials to connect to vCenter
#   credentials:
#     # reference to external credentials file
#     fileRef:
#       # read credentials from this file
#       path: ""
#       # entry in the credential file
#       entry: ""
#     # # (Optional) reference to the credential secret; it should be prepared beforehand
#     # # by 'gkectl prepare secrets' command
#     # secretRef:
#     #   # The version for this prepared secret; it can be specified as 'latest' or integer
#     #   # string; it will be defaulted to latest version if it is not specified when creating
#     #   # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
#     #   # to be empty when rotating credentials
#     #   version: ""
#   # (Optional) vSphere folder where cluster VMs will be located. Defaults to the the
#   # datacenter wide folder if unspecified.
#   folder: ""
# # (Optional) The absolute or relative path to the GCP service account key for pulling
# # GKE images (default: inherit from the admin cluster)
# componentAccessServiceAccountKeyPath: ""
# # (Optional) The prepared credentials for component access service account key
# componentAccessServiceAccountKey:
#   # reference to the credential secret; it should be prepared beforehand by 'gkectl
#   # prepare secrets' command
#   secretRef:
#     # The version for this prepared secret; it can be specified as 'latest' or integer
#     # string; it will be defaulted to latest version if it is not specified when creating
#     # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
#     # to be empty when rotating credentials
#     version: ""
# # (Optional) Use a private registry to host GKE images
# privateRegistry:
#   # Do not include the scheme with your registry address
#   address: ""
#   credentials:
#     # reference to external credentials file
#     fileRef:
#       # read credentials from this file
#       path: ""
#       # entry in the credential file
#       entry: ""
#     # # (Optional) reference to the credential secret; it should be prepared beforehand
#     # # by 'gkectl prepare secrets' command
#     # secretRef:
#     #   # The version for this prepared secret; it can be specified as 'latest' or integer
#     #   # string; it will be defaulted to latest version if it is not specified when creating
#     #   # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
#     #   # to be empty when rotating credentials
#     #   version: ""
#   # The absolute or relative path to the CA certificate for this registry
#   caCertPath: ""
# (Required) Network configuration; vCenter section is optional and inherits from
# the admin cluster if not specified
network:
  # (Required when using "static" ipMode.type; "Seesaw" loadBalancer.kind; or setting
  # enableControlplaneV2 to "true") This section overrides ipMode.ipBlockFilePath
  # values when ipMode.type=static. It's also used for control-plane nodes when controlplane
  # v2 is enabled and seesaw nodes
  hostConfig:
    # List of DNS servers
    dnsServers:
    - ""
    # List of NTP servers
    ntpServers:
    - ""
    # # List of DNS search domains
    # searchDomainsForDNS:
    # - ""
  ipMode:
    # (Required) Define what IP mode to use ("dhcp" or "static")
    type: static
    # (Required when using "static" mode) The absolute or relative path to the yaml
    # file to use for static IP allocation. Hostconfig part will be overwritten by
    # network.hostconfig if specified
    ipBlockFilePath: ""
  # (Required) The Kubernetes service CIDR range for the cluster. Must not overlap
  # with the pod CIDR range
  serviceCIDR: 10.96.0.0/20
  # (Required) The Kubernetes pod CIDR range for the cluster. Must not overlap with
  # the service CIDR range
  podCIDR: 192.168.0.0/16
  vCenter:
    # vSphere network name
    networkName: ""
  # # (Optional) List of additional node network interfaces feature enabled by multipleNetworkInterfaces
  # additionalNodeInterfaces:
  # # vSphere network name
  # - networkName: ""
  #   # (Required) Define what IP mode to use ("dhcp" "static" or "none")
  #   type: static
  #   # # (Required when using "static" mode) The absolute or relative path to the yaml file
  #   # # to use for static IP allocation. Hostconfig part will be overwritten by network.hostconfig
  #   # # if specified
  #   # ipBlockFilePath: ""
  # (Required when setting enableControlplaneV2 to "true") Specify the IPs to use
  # for control-plane nodes when controlplane v2 is enabled. 1 IP is needed for non-HA
  # cluster and 3 for HA cluster. Non-empty controlPlaneIPBlock is not allowed when
  # controlplane v2 is disabled
  controlPlaneIPBlock:
    netmask: ""
    gateway: ""
    ips:
    - ip: ""
      hostname: ""
    - ip: ""
      hostname: ""
    - ip: ""
      hostname: ""
# (Required) Load balancer configuration
loadBalancer:
  # (Required) The VIPs to use for load balancing
  vips:
    # Used to connect to the Kubernetes API
    controlPlaneVIP: ""
    # Shared by all services for ingress traffic
    ingressVIP: ""
  # (Required) Which load balancer to use "F5BigIP" "Seesaw" "ManualLB" or "MetalLB".
  # Uncomment the corresponding field below to provide the detailed spec
  kind: MetalLB
  # # (Required when using "ManualLB" kind) Specify pre-defined nodeports
  # manualLB:
  #   # NodePort for ingress service's http (only needed for user cluster)
  #   ingressHTTPNodePort: 30243
  #   # NodePort for ingress service's https (only needed for user cluster)
  #   ingressHTTPSNodePort: 30879
  #   # NodePort for konnectivity server service (only needed for controlplane v1 user
  #   # cluster)
  #   konnectivityServerNodePort: 30563
  #   # NodePort for control plane service (not needed for HA admin cluster or controlplane
  #   # V2 user cluster)
  #   controlPlaneNodePort: 30562
  # # (Required when using "F5BigIP" kind) Specify the already-existing partition and
  # # credentials
  # f5BigIP:
  #   address: ""
  #   credentials:
  #     # reference to external credentials file
  #     fileRef:
  #       # read credentials from this file
  #       path: ""
  #       # entry in the credential file
  #       entry: ""
  #     # # (Optional) reference to the credential secret; it should be prepared beforehand
  #     # # by 'gkectl prepare secrets' command
  #     # secretRef:
  #     #   # The version for this prepared secret; it can be specified as 'latest' or integer
  #     #   # string; it will be defaulted to latest version if it is not specified when creating
  #     #   # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
  #     #   # to be empty when rotating credentials
  #     #   version: ""
  #   partition: ""
  #   # # (Optional) Specify a pool name if using SNAT
  #   # snatPoolName: ""
  # # (Only used in 1.16 and older versions for using "Seesaw" kind) Specify the Seesaw
  # # configs
  # seesaw:
  #   # (Required) The absolute or relative path to the yaml file to use for IP allocation
  #   # for LB VMs. Must contain one or two IPs. Hostconfig part will be overwritten by
  #   # network.hostconfig if specified.
  #   ipBlockFilePath: ""
  #   # (Required) The Virtual Router IDentifier of VRRP for the Seesaw group. Must be
  #   # between 1-255 and unique in a VLAN.
  #   vrid: 0
  #   # (Required) The IP announced by the master of Seesaw group
  #   masterIP: ""
  #   # (Required) The number CPUs per machine
  #   cpus: 4
  #   # (Required) Memory size in MB per machine
  #   memoryMB: 3072
  #   # (Optional) Network that the LB interface of Seesaw runs in (default: cluster network)
  #   vCenter:
  #     # vSphere network name
  #     networkName: ""
  #   # (Optional) Run two LB VMs to achieve high availability (default: false)
  #   enableHA: false
  #   # (Optional) Avoid using VRRP MAC and rely on gratuitous ARP to do failover. In
  #   # this mode MAC learning is not needed but the gateway must refresh arp table based
  #   # on gratuitous ARP. It's recommended to turn this on to avoid MAC learning configuration.
  #   # In vsphere 7+ it must be true to enable HA. It is supported in GKE on-prem version
  #   # 1.7+. (default: false)
  #   disableVRRPMAC: true
  # (Required when using "MetalLB" kind in user clusters) Specify the MetalLB configs
  metalLB:
    # (Required) A list of non-overlapping IP pools used by load balancer typed services.
    # Must include ingressVIP of the cluster.
    addressPools:
    # (Required) Name of the address pool
    - name: address-pool-1
      # (Required) The addresses that are part of this pool. Each address must be
      # either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
      addresses:
      - ""
      # # (Optional) Avoid using IPs ending in .0 or .255. This avoids buggy consumer devices
      # # mistakenly dropping IPv4 traffic for those special IP addresses (default: false)
      # avoidBuggyIPs: false
      # # (Optional) Prevent IP addresses to be automatically assigned from this pool (default:
      # # false)
      # manualAssign: false
# (Optional) Enable dataplane v2
enableDataplaneV2: true
# # (Optional) DataplaneV2 configuration
# dataplaneV2:
#   # (Optional) Specify dataplanev2 forward mode (snat or dsr)
#   forwardMode: snat
# # (Optional) Enable support for multiple networking interfaces
# multipleNetworkInterfaces: false
# # (Optional) Enable advanced dataplane v2 networking features such as Egress NAT Gateway
# # and it requires enableDataplaneV2 to be set
# advancedNetworking: false
# # (Optional) Disable installation of bundled ingress
# disableBundledIngress: false
# # (Optional) Storage specification for the cluster
# storage:
#   # # Whether to disable vSphere CSI components deployment. The feature is enabled by
#   # # default
#   # vSphereCSIDisabled: false
# (Optional) User cluster master nodes must have either 1 or 3 replicas (default:
# 4 CPUs; 8192 MB memory; 1 replica)
masterNode:
  cpus: 4
  memoryMB: 8192
  # How many machines of this type to deploy
  replicas: 3
  # # Enable auto resizing on master
  # autoResize:
  #   # Whether to enable auto resize for master. Defaults to false.
  #   enabled: false
  # vsphere:
  #   # (Optional) vSphere datastore the master nodes will be created on (default: vCenter.datastore)
  #   datastore: ""
  #   # (Optional) Storage policy to use for user master VM storage and datadisk (default:
  #   # vCenter.storagePolicyName)
  #   storagePolicyName: ""
# (Required) List of node pools. The total un-tainted replicas across all node pools
# must be greater than or equal to 3
nodePools:
- name: pool-1
  # # (Optional) GKE on-prem version (example: 1.13.0-gke.16); it will be defaulted to
  # # cluster version if it is not specified; it can be used to roll back a node pool
  # # if it is specified as the previous node pool version
  # gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  # How many machines of this type to deploy
  replicas: 3
  # # (Optional) boot disk size; must be at least 40 (default: 40)
  # bootDiskSizeGB: 40
  # (Optional) Specify the type of OS image; available options can be set to "ubuntu"
  # "ubuntu_containerd" "cos" "ubuntu_cgv2" "cos_cgv2" or "windows". Default is "ubuntu_containerd".
  osImageType: ubuntu_cgv2
  # # (Required when using "windows" osImageType) Specify the OS image template in vCenter
  # osImage: ""
  # # Labels to apply to Kubernetes Node objects
  # labels: {}
  # # Taints to apply to Kubernetes Node objects
  # taints:
  # - key: ""
  #   value: ""
  #   effect: ""
  # vsphere:
  #   # (Optional) vSphere datastore the node pool will be created on (default: vCenter.datastore)
  #   datastore: ""
  #   # (Optional) Storage policy to use for nodepool (default: vCenter.storagePolicyName)
  #   storagePolicyName: ""
  #   # (Optional) Existing host groups used for VM/Host affinity. VM groups will be created
  #   # to bind with these host groups via vm-host affinity rules
  #   hostgroups:
  #   - ""
  #   # (Optional) vSphere tags to be attached to the virtual machines in the node pool.
  #   # It is supported in GKE on-prem version 1.7+
  #   tags:
  #   - category: ""
  #     name: ""
  # # (Optional) Horizontal autoscaling for the nodepool; replicas should not be edited
  # # while updating the nodepool if this is turned on
  # autoscaling:
  #   # min number of replicas in the NodePool
  #   minReplicas: 0
  #   # max number of replicas in the NodePool
  #   maxReplicas: 0
  # (Optional) Allow traffic of LoadBalancer typed services flow through nodes of
  # this pool. This is only needed for MetalLB mode. Set it to true for at least one
  # node pool in the cluster. Default is false.
  enableLoadBalancer: true
  # # (Optional/Preview) Update strategy for this node pool (it will overwrite nodePoolUpdatePolicy.updateStrategy
  # # setting)
  # updateStrategy:
  #   # # (Optional/Preview) Rolling update strategy for machines of the node pool
  #   # rollingUpdate:
  #   #   # # (Optional/Preview) The maximum number of machines that can be scheduled simultaneously
  #   #   # # during update/upgrade (default: 1)
  #   #   # maxSurge: "1"
# Spread nodes across at least three physical hosts (requires at least three hosts)
antiAffinityGroups:
  # Set to false to disable DRS rule creation
  enabled: true
# # (Optional/Preview) Track user cluster VMs with vSphere tags
# enableVMTracking: false
# # Configure node pool update policy for the cluster
# nodePoolUpdatePolicy:
#   # (Optional/Preview) Number of node pools to update at a time. 0 means no limit.
#   # 1 means updating one by one.
#   maximumConcurrentNodePoolUpdate: 0
#   # # (Optional/Preview) Cluster wide default node pool update strategy. A node pool will
#   # # use this setting if it doesn't set specific updateStrategy
#   # updateStrategy:
#   #   # # (Optional/Preview) Rolling update strategy for machines of the node pool
#   #   # rollingUpdate:
#   #   #   # # (Optional/Preview) The maximum number of machines that can be scheduled simultaneously
#   #   #   # # during update/upgrade (default: 1)
#   #   #   # maxSurge: "1"
# # (Optional) Configure additional authentication.
# authentication:
#   # (Optional) Provide an additional serving certificate for the API server
#   sni:
#     certPath: ""
#     keyPath: ""
# # (Optional) Configure BinAuthz to enable deploy-time security control to the container
# # images.
# binaryAuthorization:
#   # (Optional) Set value to string "disabled" or "project_singleton_policy_enforce".
#   # Default is "disabled".
#   evaluationMode: ""
# (Required) Specify which GCP project to register your GKE OnPrem cluster to
gkeConnect:
  projectID: ""
  # # (Optional) The location of the GKE Hub and Connect service where the cluster is
  # # registered to. It can be any GCP region or "global". Default to "global" when unspecified.
  # location: us-central1
  # The absolute or relative path to the key file for a GCP service account used to
  # register the cluster
  registerServiceAccountKeyPath: ""
  # # (Optional) The prepared credentials for register service account key
  # registerServiceAccountKey:
  #   # reference to the credential secret; it should be prepared beforehand by 'gkectl
  #   # prepare secrets' command
  #   secretRef:
  #     # The version for this prepared secret; it can be specified as 'latest' or integer
  #     # string; it will be defaulted to latest version if it is not specified when creating
  #     # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
  #     # to be empty when rotating credentials
  #     version: ""
# # (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem
# # API to enable/disable cluster lifecycle management from gcloud UI and Terraform.
# gkeOnPremAPI:
#   enabled: false
# (Required) Specify which GCP project to connect your logs and metrics to
stackdriver:
  # The project ID for logs and metrics. It should be the same with gkeconnect.projectID.
  projectID: ""
  # A GCP region where you would like to store logs and metrics for this cluster.
  clusterLocation: us-central1
  # The absolute or relative path to the key file for a GCP service account used to
  # send logs and metrics from the cluster
  serviceAccountKeyPath: ""
  # # (Optional) The prepared credentials for stackdriver service account key
  # serviceAccountKey:
  #   # reference to the credential secret; it should be prepared beforehand by 'gkectl
  #   # prepare secrets' command
  #   secretRef:
  #     # The version for this prepared secret; it can be specified as 'latest' or integer
  #     # string; it will be defaulted to latest version if it is not specified when creating
  #     # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
  #     # to be empty when rotating credentials
  #     version: ""
  # (Optional) Disable vsphere resource metrics collection from vcenter.  False by
  # default
  disableVsphereResourceMetrics: false
# # (Optional/Preview) Configure the GKE usage metering feature
# usageMetering:
#   bigQueryProjectID: ""
#   # The ID of the BigQuery Dataset in which the usage metering data will be stored
#   bigQueryDatasetID: ""
#   # The absolute or relative path to the key file for a GCP service account used by
#   # gke-usage-metering to report to BigQuery
#   bigQueryServiceAccountKeyPath: ""
#   # # (Optional) The prepared credentials for big query service account key
#   # bigQueryServiceAccountKey:
#   #   # reference to the credential secret; it should be prepared beforehand by 'gkectl
#   #   # prepare secrets' command
#   #   secretRef:
#   #     # The version for this prepared secret; it can be specified as 'latest' or integer
#   #     # string; it will be defaulted to latest version if it is not specified when creating
#   #     # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
#   #     # to be empty when rotating credentials
#   #     version: ""
#   # Whether or not to enable consumption-based metering
#   enableConsumptionMetering: false
# (Optional) Configure kubernetes apiserver audit logging
cloudAuditLogging:
  # The project ID for logs and metrics. It should be the same with gkeconnect.projectID.
  projectID: ""
  # A GCP region where you would like to store audit logs for this cluster.
  clusterLocation: us-central1
  # The absolute or relative path to the key file for a GCP service account used to
  # send audit logs from the cluster
  serviceAccountKeyPath: ""
  # # (Optional) The prepared credentials for cloud audit logging service account key
  # serviceAccountKey:
  #   # reference to the credential secret; it should be prepared beforehand by 'gkectl
  #   # prepare secrets' command
  #   secretRef:
  #     # The version for this prepared secret; it can be specified as 'latest' or integer
  #     # string; it will be defaulted to latest version if it is not specified when creating
  #     # a cluster; it is allowed to be empty when creating a cluster; it is not allowed
  #     # to be empty when rotating credentials
  #     version: ""
# Enable auto repair for the cluster
autoRepair:
  # Whether to enable auto repair feature. Set false to disable.
  enabled: true
# # Encrypt Kubernetes secrets at rest
# secretsEncryption:
#   # Secrets Encryption Mode. Possible values are: GeneratedKey
#   mode: GeneratedKey
#   # GeneratedKey Secrets Encryption config
#   generatedKey:
#     # # key version
#     # keyVersion: 1
#     # # disable secrets encryption
#     # disabled: false

必須フィールドとデフォルト値

フィールドに「必須」というマークが付いている場合は、完成した構成ファイルでそのフィールドに値が設定されている必要があります。

一部のフィールドは条件付きで必須です。たとえば、loadBalancer.kindMetalLB に等しい場合、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 以降1.29 以前

変更不可
ブール値
事前入力: true
デフォルト: true

バージョン 1.30 以降では、新しいユーザー クラスタに Controlplane V2 が必要です。このフィールドを構成ファイルに含める場合は、true に設定する必要があります。Controlplane V2 を使用すると、ユーザー クラスタのコントロール プレーンはそのユーザー クラスタの 1 つ以上のノードで実行されます。Controlplane V2 のメリットは次のとおりです。

  • 管理クラスタとユーザー クラスタ間のアーキテクチャの一貫性。

  • 障害の分離。管理クラスタの障害は、ユーザー クラスタに影響しません。

  • 運用上の分離。管理クラスタのアップグレードでユーザー クラスタのダウンタイムは発生しません。

  • デプロイの分離。管理クラスタとユーザー クラスタを、異なる障害発生ドメインまたは地理的な場所に配置できます。たとえば、エッジ ロケーションのユーザー クラスタが、管理クラスタとは地理的に異なる場所に存在する場合があります。

変更不可
ブール値
事前入力: true
デフォルト: true

Controlplane V2 を有効にするには、enableControlplaneV2true に設定するか、ユーザー クラスタ構成ファイルから設定を削除します。それ以外の場合は、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.networkNamevCenter セクションのすべての必須フィールドの値を指定する必要があります。

例:

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

管理クラスタが非公開レジストリを使用し、ユーザー クラスタで異なる非公開レジストリを使用する場合にのみ、このセクションに値を設定してください。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

管理クラスタの設定と異なる設定が必要な場合:

  • 別のユーザー名、パスワード、証明書

  • Controlplane 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

1.30 以降1.29 以前

このセクションには、クラスタノードである VM で使用される NTP サーバー、DNS サーバー、DNS 検索ドメインに関する情報が保持されます。

このセクションは、次の条件を 1 つ以上満たす場合に必要です。

  • network.ipMode.typestatic に設定されている。
  • enableControlplaneV2true に設定されているか、デフォルトで true に設定できる。新しいユーザー クラスタには Controlplane V2 が必要です。

このセクションには、クラスタノードである VM で使用される NTP サーバー、DNS サーバー、DNS 検索ドメインに関する情報が保持されます。Seesaw ロードバランサを使用している場合、この情報は Seesaw VM にも適用されます。

このセクションは、次の条件を 1 つ以上満たす場合に必要です。

  • network.ipMode.typestatic に設定されている。
  • enableControlplaneV2true に設定されているか、デフォルトで true に設定できる。Seesaw ロードバランサは、Controlplane V2 が有効になっているクラスタではサポートされていません。
  • 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 アドレスを使用することが推奨される理由の一つは次のとおりです。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

multipleNetworkInterfacestrue に設定した場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

変更不可

オブジェクトの配列では、それぞれが、クラスタノードのすべてまたは一部で使用できるネットワーク インターフェースを示します。

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

enableControlplaneV2true に設定した場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

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

必須
変更不可
文字列

Ingress プロキシのロードバランサを構成するために選択した IP アドレス。

例:

loadBalancer:
  vips:
    ingressVIP: "203.0.113.4"

loadBalancer.kind

1.30 以降1.29 以前

必須
変更不可
文字列
事前入力: MetalLB

文字列。"ManualLB" または "MetalLB" に設定します

サードパーティのロードバランサ(F5 BIG-IP や Citrix など)を使用している場合は "ManualLB" を使用し、バンドルされたソリューションの場合は "MetalLB" を使用します。

kind"F5BigIP" または "Seesaw" に設定されているクラスタをアップグレードすることはできますが、これらのロードバランサ構成のいずれかを使用している既存のクラスタでは、Dataplane V2 または Controlplane V2 を使用できません。ロード バランシング構成の移行については、以下をご覧ください。

例:

loadBalancer:
  kind: "MetalLB"

必須
変更不可
文字列
事前入力: MetalLB

"ManualLB""F5BigIP""Seesaw""MetalLB" のいずれかに設定します。

Dataplane V2 と Controlplane V2 を有効にするため、サードパーティのロードバランサ(F5 BIG-IP や Citrix など)を使用している場合は "ManualLB" を使用するか、バンドルされたソリューションの場合は "MetalLB" を使用することをおすすめします。

例:

loadBalancer:
  kind: "MetalLB"

loadBalancer.manualLB

loadbalancer.kind"manualLB" に設定した場合は、このセクションに値を設定します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

loadBalancer.manualLB.ingressHTTPNodePort

loadBalancer.kind = ManualLB の場合は必須
変更不可
整数
事前入力: 30243

ユーザー クラスタの Ingress プロキシは、LoadBalancer タイプの Kubernetes Service で公開されます。この Service には、HTTP 用の ServicePort があります。HTTP ServicePort の nodePort 値を選択する必要があります。

このフィールドに nodePort 値を設定します。

例:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

loadBalancer.kind = ManualLB の場合は必須
変更不可
整数
事前入力: 30879

ユーザー クラスタの Ingress プロキシは、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

1.30 以降1.29 以前

1.30 以降では、新しいユーザー クラスタの loadbalancer.kind"F5BigIP" 値は使用できません。構成ファイルに loadBalancer.f5BigIP セクションがある場合は、削除するかコメントアウトします。

新しいユーザー クラスタで F5 BIG-IP ロードバランサを引き続き使用できますが、構成は異なります。構成の詳細については、手動ロード バランシング モードの有効化をご覧ください。

loadbalancer.kind"f5BigIP" に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

新しい機能や高度な機能を有効にするには、F5 BIG-IP ロードバランサの手動ロード バランシングを構成することをおすすめします。手動ロード バランシングを有効にするには、loadbalancer.kind"ManualLB" に設定し、loadBalancer.manualLB セクションに入力します。詳細については、手動ロード バランシング モードを有効にするをご覧ください。

既存の F5-BIG-IP ロードバランサがあり、クラスタ構成でこのセクションが使用されている場合は、1.29 以降にアップグレードした後に、手動ロード バランシングに移行することをおすすめします。

loadBalancer.f5BigIP.address

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = "f5BigIP" の場合は必須
文字列

F5 BIG-IP ロードバランサのアドレス。

例:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.kind = "f5BigIP" の場合は必須
文字列

F5 BIG-IP ロードバランサのアドレス。

例:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.credentials.fileRef.path

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = "f5BigIP" の場合は必須
文字列

Google Distributed Cloud が F5 BIG-IP ロードバランサへの接続に使用できるアカウントのユーザー名とパスワードを含む認証情報ファイルのパス。

ユーザー アカウントには、ロードバランサの設定と管理を行うために十分な権限を持つユーザーロールが必要です。管理者ロールまたはリソース管理者ロールのどちらかで十分です。

F5 BIG-IP 認証情報の更新については、クラスタ認証情報の更新をご覧ください。

例:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        path: "my-config-folder/user-creds.yaml"

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

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = "f5BigIP" の場合は必須
文字列

F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。

例:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

loadBalancer.kind = "f5BigIP" の場合は必須
文字列

F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。

例:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

loadBalancer.f5BigIP.partition

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = "f5BigIP" の場合は必須
文字列

ユーザー クラスタ用に作成した BIG-IP パーティションの名前。

例:

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

loadBalancer.kind = "f5BigIP" の場合は必須
文字列

ユーザー クラスタ用に作成した BIG-IP パーティションの名前。

例:

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

loadBalancer.f5BigIP.snatPoolName

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = "f5BigIP" かつ SNAT を使用している場合は必須
文字列

SNAT プールの名前。

例:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.kind = "f5BigIP" かつ、SNAT を使用している場合は必須
文字列

SNAT プールの名前。

例:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

1.30 以降1.29 以前

1.30 以降では、このロードバランサは新しい高度な機能でサポートされていません。このため、新しいユーザー クラスタの loadbalancer.kind"Seesaw" 値は使用できません。構成ファイルに loadBalancer.seesaw セクションがある場合は、削除するかコメントアウトします。

代わりに、バンドルされた MetalLB ロードバランサを構成できます。MetalLB ロードバランサを有効にするには、loadbalancer.kind"MetalLB" に設定し、loadBalancer.metalLB セクションに値を設定します。詳細については、MetalLB によるバンドルされたロード バランシングをご覧ください。

loadbalancer.kind"Seesaw" に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

SeeSaw ロードバランサには、次の制限事項があります。

  • このユーザー クラスタを高可用性管理クラスタが管理している場合、このユーザー クラスタは Seesaw ロードバランサを使用できません。
  • Controlplane V2 が有効になっているユーザー クラスタでは、Seesaw ロードバランサを使用できません。

これらの機能を使用するには、MetalLB ロードバランサを構成することをおすすめします。MetalLB ロードバランサを有効にするには、loadbalancer.kind"MetalLB" に設定し、loadBalancer.metalLB セクションに値を設定します。詳細については、MetalLB によるバンドルされたロード バランシングをご覧ください。

loadBalancer.seesaw.ipBlockFilePath

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = Seesaw の場合は必須
変更不可
文字列

Seesaw VM の IP ブロック ファイルのパス。

例:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

loadBalancer.kind = Seesaw の場合は必須
変更不可
文字列

Seesaw VM の IP ブロック ファイルのパス。

例:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vrid

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = Seesaw の場合は必須
変更不可
整数
有効な値: 1~255
事前入力: 0

Seesaw VM の仮想ルーター識別子。この識別子(任意の整数)は VLAN 内で一意である必要があります。

例:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.kind = Seesaw の場合は必須
変更不可
整数
有効な値: 1~255
事前入力: 0

Seesaw VM の仮想ルーター識別子。この識別子(任意の整数)は VLAN 内で一意である必要があります。

例:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = Seesaw の場合は必須
変更不可
文字列

マスター Seesaw VM に構成された仮想 IP アドレス。

例:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.kind = Seesaw の場合は必須
変更不可
文字列

マスター Seesaw VM に構成された仮想 IP アドレス。

例:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = Seesaw の場合は必須
変更可
整数
事前入力: 4

各 Seesaw VM の CPU 数。

例:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.kind = Seesaw の場合は必須
変更可
整数
事前入力: 4

各 Seesaw VM の CPU 数。

例:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

1.30 以降1.29 以前

新しいクラスタでは使用不可
loadBalancer.kind = Seesaw の場合は必須
変更可
整数
事前入力: 3072

各 Seesaw VM のメモリ(MiB 単位)。

例:

loadBalancer:
  seesaw:
    memoryMB: 8192

注: このフィールドでは、メモリの量をメガバイトではなく、MiB 単位で指定します。1 MiB は、220 = 1,048,576 バイトです。1 メガバイトは、106 = 1,000,000 バイトです。

loadBalancer.kind = Seesaw の場合は必須
変更可
整数
事前入力: 3072

各 Seesaw VM のメモリ(MiB 単位)。

例:

loadBalancer:
  seesaw:
    memoryMB: 8192

注: このフィールドでは、メモリの量をメガバイトではなく、MiB 単位で指定します。1 MiB は、220 = 1,048,576 バイトです。1 メガバイトは、106 = 1,000,000 バイトです。

loadBalancer.seesaw.vCenter.networkName

1.30 以降1.29 以前

新しいクラスタでは使用不可
変更不可
文字列
デフォルト: クラスタノードと同じ

Seesaw VM を含むネットワークの名前。

例:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

変更不可
文字列
デフォルト: クラスタノードと同じ

Seesaw VM を含むネットワークの名前。

例:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

1.30 以降1.29 以前

新しいクラスタでは使用不可
変更不可
loadBalancer.kind = Seesaw の場合に関連
ブール値
事前入力: false
デフォルト: false

高可用性(HA)Seesaw ロードバランサを作成する場合は true に設定します。それ以外の場合は false に設定します。HA Seesaw ロードバランサは、VM の(マスター、バックアップ)ペアを使用します。

例:

loadBalancer:
  seesaw:
    enableHA: true

変更不可
loadBalancer.kind = Seesaw の場合に関連
ブール値
事前入力: false
デフォルト: false

高可用性(HA)Seesaw ロードバランサを作成する場合は true に設定します。それ以外の場合は false に設定します。HA Seesaw ロードバランサは、VM の(マスター、バックアップ)ペアを使用します。

例:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

1.30 以降1.29 以前

新しいクラスタでは使用不可
不変
loadBalancer.kind = Seesaw の場合に関連
ブール値
事前入力: true
デフォルト: true

この値を true に設定すると、Seesaw ロードバランサはフェイルオーバーに MAC ラーニングを使用しません。代わりに、Gratuitous ARP を使用します。この値を false に設定すると、Seesaw ロードバランサは MAC ラーニングを使用します。これを true に設定することをおすすめします。vSphere 7 以降を使用していて、高可用性の Seesaw ロードバランサを使用している場合は、true に設定する必要があります。

例:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

変更不可
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 以降1.29 以前

変更不可
ブール値
事前入力: 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 です。

変更不可
ブール値
事前入力: true
デフォルト: false

Dataplane V2 を有効にする場合、または Controlplane V2 を使用する場合は、true に設定します。それ以外の場合は false に設定します。

Dataplane V2 を有効にすることをおすすめします。

例:

  enableDataplaneV2: true

トラブルシューティングの手順については、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 に設定した場合は、enableDataplaneV2true に設定する必要があります。

例:

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

注: このフィールドでは、メモリの量をメガバイトではなく、MiB 単位で指定します。1 MiB は、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

注: このフィールドでは、メモリの量をメガバイトではなく、MiB 単位で指定します。1 MiB は、2^20 = 1,048,576 バイトです。1 メガバイトは、10^6 = 1,000,000 バイトです。

nodePools[i].replicas

必須
変更可
整数
事前入力: 3
有効な値: クラスタのノードプール全体で untainted 状態のノードの合計数が少なくとも 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 で自身にラベルを適用できません。

予約済みノードラベルの Namespace は kubernetes.iok8s.iogoogleapis.com です。

nodePools[i].taints

変更可
オブジェクトの配列。それぞれがプール内の各ノードに適用される Kubernetes taint を記述します。taint は、1 つの effect に関連付けられた Key-Value ペアです。taint は、Pod のスケジューリングの toleration で使用されます。effect には、NoSchedulePreferNoScheduleNoExecute のいずれかを指定します。

例:

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 権限があること。

  • 利用可能な ESXi ホストが少なくとも 4 つ存在すること。

このルールでは、クラスタノードを 3 台の ESXi ホストに分散させることが要件ですが、少なくとも 4 台の ESXi ホストを利用できるようにすることを強くおすすめします。

前述のとおり、vSphere スタンダード ライセンスがある場合、VMware DRS を有効にすることはできません。

DRS が有効になっていない場合や、vSphere VM をスケジュール設定できるホストが 4 つ以上ない場合は、antiAffinityGroups.enabledfalse に設定します。

例:

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.projectIDcloudAuditLogging.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.clusterLocationstackdriver.clusterLocationgkeOnPremAPI.location に構成されたリージョンと同じでなければなりません。リージョンが同じでない場合、クラスタの作成は失敗します。

例:

gkeConnect:
  location: "us-central1"

gkeConnect.registerServiceAccountKeyPath

必須
変更可
文字列

connect-register サービス アカウントの 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.enabledfalse に設定します。プロジェクトにクラスタを登録しない場合は、プロジェクトで 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.locationstackdriver.clusterLocationcloudAuditLogging.clusterLocation で構成されているリージョンと同じリージョンを使用する必要があります。gkeOnPremAPI.enabledfalse の場合、このフィールドを含めないでください。

stackdriver

デフォルトで必須
変更可

クラスタに対して Cloud Logging と Cloud Monitoring を有効にする場合は、このセクションを設定します。それ以外の場合は、このセクションを削除するか、コメントアウトしたままにします。

デフォルトでは、このセクションは必須です。つまり、このセクションを含めない場合は、gkectl create cluster を実行する際に --skip-validation-stackdriver フラグを含める必要があります。

このセクションは、Google Cloud コンソールのユーザー クラスタのライフサイクルを管理する場合にユーザー クラスタで必要です。

stackdriver.projectID

Logging と Monitoring の場合は必須
変更不可
文字列

フリート ホスト プロジェクトの ID。新規クラスタの場合、このプロジェクト ID は gkeConnect.projectIDcloudAuditLogging.projectID で設定した ID と同じでなければなりません。プロジェクト ID が同じでない場合、クラスタの作成は失敗します。この要件は、既存のクラスタには適用されません。

必要に応じて、このプロジェクトのログルーターを構成して、別のプロジェクトのログバケットにログを転送できます。ログルーターの構成方法については、サポートされる宛先をご覧ください。

例:

stackdriver:
  projectID: "my-fleet-host-project"

stackdriver.clusterLocation

Logging と Monitoring の場合は必須
変更不可
文字列
事前入力: us-central1

ログを保存する Google Cloud リージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。

新しいクラスタの場合、構成ファイルで gkeOnPremAPI セクションと cloudAuditLogging セクションを設定すれば、ここで設定するリージョンは、gkeConnect.locationgkeOnPremAPI.locationcloudAuditLogging.clusterLocation で設定したリージョンと同じにする必要があります。リージョンが同じでない場合、クラスタの作成は失敗します。

例:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

変更不可
ブール値
事前入力: false

クラスタのネットワークが VPC によって管理されている場合は、true に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。それ以外の場合は false に設定します。

例:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Logging と Monitoring の場合は必須
変更可
文字列

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.projecIDstackdriver.projectID で設定した ID と同じでなければなりません。プロジェクト ID が同じでない場合、クラスタの作成は失敗します。この要件は、既存のクラスタには適用されません。

必要に応じて、このプロジェクトのログルーターを構成して、別のプロジェクトのログバケットにログを転送できます。ログルーターの構成方法については、サポートされる宛先をご覧ください。

例:

cloudAuditLogging:
  projectID: "my-fleet-host-project"

cloudAuditLogging.clusterLocation

Cloud Audit Logs の場合は必須
変更不可
文字列

監査ログを保存する Google Cloud のリージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。

新しいクラスタの場合、構成ファイルで gkeOnPremAPI セクションと stackdriver セクションを設定すれば、ここで設定するリージョンは、gkeConnect.locationgkeOnPremAPI.locationstackdriver.clusterLocation で設定したリージョンと同じにする必要があります。リージョンが同じでない場合、クラスタの作成は失敗します。

例:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

Cloud Audit Logs の場合は必須
変更可
文字列

audit-logging サービス アカウントの 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