管理员集群配置文件

本页面介绍了管理员集群配置文件中的字段。

生成配置文件模板

如果您使用了 gkeadm 来创建管理员工作站,则 gkeadm 为您的管理员集群配置文件生成了一个模板。此外,gkeadm 还为您填写了一些字段。

如果您未使用 gkeadm 创建管理员工作站,则可以使用 gkectl 为管理员集群配置文件生成模板。

如需为管理员集群配置文件生成模板,请运行以下命令:

gkectl create-config admin --config=[OUTPUT_FILENAME]

其中 [OUTPUT_FILENAME] 是您为生成的模板选择的路径。如果省略此标志,则 gkectl 将该文件命名为 admin-cluster.yaml,并将其放在当前目录中。

填写配置文件

在配置文件中,按照以下部分的说明输入字段值。

bundlePath

字符串。GKE On-Prem 软件包文件的路径。

GKE On-Prem 完整软件包文件包含特定 GKE On-Prem 版本中的所有组件。创建管理员工作站时,该工作站会随附以下完整软件包:

/var/lib/gke/bundles/gke-onprem-vsphere-[VERSION]-full.tgz

例如:

bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.4.3-gke.3-full.tgz"

vCenter

本部分包含有关您的 vSphere 环境的信息。

vCenter.address

字符串。您的 vCenter 服务器的 IP 地址或主机名。

在填写 address 字段之前,请下载并检查您的 vCenter 服务器的服务证书。输入以下命令以下载证书并将其保存到名为 vcenter.pem 的文件中。

true | openssl s_client -connect [VCENTER_IP]:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem

其中,[VCENTER_IP] 是 vCenter Server 的 IP 地址。

打开证书文件以查看主题通用名称和主题备用名称:

openssl x509 -in vcenter.pem -text -noout

输出会显示 Subject 通用名称 (CN)。这可能是 IP 地址,也可能是主机名。例如:

Subject: ... CN = 203.0.113.100
Subject: ... CN = my-vcenter-server.my-domain.example

输出还可能在 Subject Alternative Name 下包含一个或多个 DNS 名称:

X509v3 Subject Alternative Name:
    DNS:vcenter.my-domain.example

选择 Subject 通用名称或 Subject Alternative Name 下的一个 DNS 名称,以在配置文件中用作 vcenter.address 的值。例如:

vCenter:
  address: "203.0.113.100"
    ...
vCenter:
  address: "my-vcenter-server.my-domain.example"
    ...

vCenter.credentials.username

字符串。vCenter Server 用户帐号。用户帐号应具有 Administrator 角色或同等权限。请参阅 vSphere 要求

例如:

vCenter:
  credentials:
    username: "my-account@vsphere.local"

vCenter.credentials.password

字符串。vCenter Server 用户帐号的密码。例如:

vCenter:
  credentials:
    password: "#STyZ2T#Ko2o"

vCenter.datastore

字符串。vCenter 数据存储区的名称。例如:

vCenter:
  datastore: "MY-DATASTORE"

vCenter.resourcePool

字符串。vCenter 资源池的名称。例如:

如果您使用的是非默认资源池,请提供您的 vCenter 资源池的名称。例如:

vCenter:
  resourcePool: "MY-POOL"

如果您使用的是默认资源池,请提供以下值:

vCenter:
  resourcePool: "[VCENTER_CLUSTER]/Resources"

其中,[VCENTER_CLUSTER] 是您的 vCenter 集群的名称。

请参阅为独立主机指定根资源池

vCenter.caCertPath

字符串。当客户端(如 GKE On-Prem)向您的 vCenter 服务器发送请求时,服务器必须通过提供证书或证书软件包来向客户端证明其身份。为了验证证书或软件包,GKE On-Prem 必须具有信任链中的根证书。

vCenter.caCertPath 设置为根证书的路径。例如:

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"

VMware 安装的证书授权机构 (CA) 会向您的 vCenter 服务器颁发证书。信任链中的根证书是由 VMware 创建的自签名证书。

如果您不想使用默认的 VMWare CA,则可以将 VMware 配置为使用其他证书授权机构

如果您的 vCenter 服务器使用默认 VMware CA 颁发的证书,请按如下方式下载该证书:

curl -k "https://[SERVER_ADDRESS]/certs/download.zip" > download.zip

其中,[SERVER_ADDRESS] 是 vCenter 服务器的地址。

安装 unzip 命令并解压缩证书文件:

sudo apt-get install unzip
unzip downloads.zip

如果首次解压缩命令无效,请再次输入该命令。

certs/lin 中可找到证书文件。

vCenter.datacenter

字符串。您的 vCenter 数据中心的名称。例如:

vCenter:
  datacenter: "MY-DATACENTER"

vCenter.cluster

字符串。您的 vCenter 集群的名称。例如:

vCenter:
  cluster: "MY-CLUSTER"

vCenter.dataDisk

字符串。GKE On-Prem 会创建一个虚拟机磁盘 (VMDK) 来保存 Kubernetes 对象数据。安装程序会为您创建 VMDK,但您必须在 vCenter.dataDisk 字段中提供 VMDK 的名称。例如:

vCenter:
  dataDisk: "my-disk.vmdk"

network

本部分包含有关管理员集群网络的信息。

network.ipMode.type

字符串。如果您希望集群节点从 DHCP 服务器获取其 IP 地址,请将此设置为 "dhcp"。如果您希望集群节点从您提供的列表中选择静态 IP 地址,请将此设置为 "static"。例如

network:
  ipMode:
    type: "static"

network.serviceCIDRnetwork.podCiDR

字符串。管理员集群必须拥有用于 Service 的 IP 地址范围以及用于 pod 的 IP 地址范围。这些范围由 network.serviceCIDRnetwork.podCIDR 字段指定。这些字段将填入默认值。如果需要,您可以将填充的值更改为您选择的值。

Service 和 pod 范围不得重叠。此外,Service 和 pod 范围不得与任何集群中节点的 IP 地址重叠。

例如:

network:
  ...
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

字符串。您的集群节点所在的 vSphere 网络的名称。

如果名称中包含特殊字符,您必须对其使用转义序列。

特殊字符 转义序列
正斜杠 (/) %2f
反斜杠 (\) %5c
百分号 (%) %25

如果网络名称不唯一,则可以指定网络的路径,例如 /DATACENTER/network/NETWORK_NAME

例如:

network:
  vCenter:
    networkName: "MY-CLUSTER-NETWORK"

network.ipBlockFilePath {:#network-ipblockfilepath-field}`

如果将 ipMode.type 设置为 "static",请填写此字段。

如果将 ipMode.type 设置为 "dhcp",请移除此字段或将其注释掉。

字符串。您的管理员集群的 hostconfig 文件的路径。例如:

network:
  ipBlockFilePath: "/my-config-directory/admin-hostconfig.yaml"

loadBalancer

本部分包含有关管理员集群的负载平衡器的信息。

loadBalancer.vips.controlPlaneVIP

字符串。您选择为管理员集群的 Kubernetes API 服务器在负载平衡器上配置的 IP 地址。例如:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.addonsVIP

字符串。您选择在负载平衡器上为插件配置的 IP 地址。例如:

loadBalancer:
  vips:
    addonsVIP: "203.0.113.4"

loadBalancer.kind

字符串。请将此设置为 "Seesaw""F5BigIP""ManualLB"。例如:

loadBalancer:
  kind: "Seesaw"

loadBalancer.manualLB

如果将 loadbalancer.kind 设置为 "ManualLB",请填写此部分。否则,请移除此部分或将其注释掉。

loadBalancer.manualLB.controlPlaneNodePort

整数。管理员集群中的 Kubernetes API 服务器实现为 NodePort 类型的 Service。您必须为 Service 选择 nodePort 值。

将此字段设置为 nodePort 值。例如:

loadBalancer:
  manualLB:
    contolPLaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

整数。管理员集群中的插件服务器实现为 NodePort 类型的 Service。您必须为 Service 选择 nodePort 值。

将此字段设置为 nodePort 值。例如:

loadBalancer:
  manualLB:
    addonsNodePort: 31405

loadBalancer.f5BigIP

如果将 loadbalancer.kind 设置为 "f5BigIP",请填写此部分。否则,请移除此部分或将其注释掉。

loadBalancer.f5BigIP.address

字符串。F5 BIG-IP 负载平衡器的地址。例如:

loadBalancer:
  f5BigIP:
    address: "203.0.113.2"

loadBalancer.f5BigIP.credentials.username

字符串。GKE On-Prem 可用于连接到 F5 BIG-IP 负载平衡器的帐号的用户名。例如:

loadBalancer:
  f5BigIP:
    credentials:
      username: "my-admin-f5-name"

loadBalancer.f5BigIP.credentials.password

字符串。GKE On-Prem 可用于连接到 F5 BIG-IP 负载平衡器的密码。例如:

loadBalancer:
  f5BigIP:
    credentials:
      password: "rJDlm^%7aOzw"

loadBalancer.f5BigIP.partition

字符串。您为管理员集群创建的 BIG-IP 分区的名称。例如:

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

loadBalancer.f5BigIP.snatPoolName

字符串。如果您使用的是 SNAT,则它是 SNAT 池的名称。如果您未使用 SNAT,请移除此字段或将其注释掉。例如:

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

loadBalancer.seesaw

如果将 loadbalancer.kind 设置为 "Seesaw",请填写此部分。否则,请移除此部分或将其注释掉。

loadBalancer.seesaw.ipBlockFilePath

字符串。将此值设置为 Seesaw 虚拟机的 hostconfig 文件的路径。例如:

loadbalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

整数。您的 Seesaw 虚拟机的虚拟路由器标识符。此标识符在 VLAN 中必须具有唯一性。有效范围为 1-255。例如:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

字符串。您的 Seesaw 虚拟机或虚拟机对的 VIP 地址。例如:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

整数。您的 Seesaw 虚拟机的 CPU 数量。例如:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

整数。您的 Seesaw 虚拟机的内存大小(以 MB 为单位)。例如:

loadBalancer:
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.vCenter.networkName

字符串。包含 Seesaw 虚拟机的网络的名称。例如:

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

loadBalancer.seesaw.enableHA

布尔值。如果要创建可用性高的 Seesaw 负载平衡器,请将此值设置为 true。否则,请将其设置为 false。例如:

loadBalancer:
  seesaw:
    enableHA: true

proxy

如果您的网络由代理服务器提供支持,请填写此部分。否则,请移除此部分。

proxy.url

字符串。代理服务器的 HTTP 地址。即使端口号与该方案的默认端口相同,也要填写此端口号。例如:

proxy:
  url: "http://my-proxy.example.local:80"

您在此处指定的代理服务器会被 GKE On-Prem 集群使用。此外,除非您在管理员工作站上设置 HTTPS_PROXY 环境变量,否则您的管理员工作站会自动配置为使用同一代理服务器。

如果您指定 proxy.url,则还必须指定 proxy.noProxy

proxy.noProxy

字符串。不应通过代理服务器的 IP 地址、IP 地址范围、主机名和域名的列表(以英文逗号分隔)。当 GKE On-Prem 向这些地址、主机或网域之一发送请求时,系统会直接发送请求。例如:

proxy:
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

privateRegistry

如果您有一个私有 Docker 注册表,请填写此部分。否则,请移除此部分或将其注释掉。

privateRegistry.address

字符串。运行您的私有 Docker 注册表的机器的 IP 地址。例如:

privateRegistry:
  address: "203.0.113.10"

privateRegistry.credentials.username

字符串。GKE On-Prem 可用于访问您的私有 Docker 注册表的帐号的用户名。例如:

privateRegistry:
  credentials:
    username: "my-registry-account"

privateRegistry.credentials.password

字符串。GKE On-Prem 可用于访问您的私有 Docker 注册表的帐号的密码。例如:

privateRegistry:
  credentials:
    password: "H0!%fwH0rBnh"

privateRegistry.caCertPath

字符串。当 Docker 从您的私有注册表中拉取映像时,该注册表必须通过提供证书来证明其身份。注册表的证书由证书授权机构 (CA) 签名。Docker 使用 CA 的证书来验证该注册表的证书。

将此字段设置为 CA 证书的路径。例如:

privateRegistry:
  caCertPath: "my-cert-folder/registry-ca.crt"

gcrKeyPath

字符串。已列入许可名单的服务帐号的 JSON 密钥文件的路径。例如:

gcrKeyPath: "my-key-folder/whitelisted-key.json"

stackdriver

本部分包含您要用于存储日志和指标的项目和服务帐号的相关信息。

stackdriver.projectID

字符串。要在其中查看日志的 Google Cloud 项目的 ID。例如:

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

字符串。您要在其中存储日志的 Google Cloud 地区。建议选择一个靠近您的本地数据中心的地区。例如:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

布尔值。如果集群的网络由 VPC 控制,请将此字段设置为 true。这样可以确保所有遥测流都通过 Google 的受限 IP 地址。否则,请将此字段设置为 false。例如:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

字符串。您的日志记录和监控服务帐号的 JSON 密钥文件的路径。例如:

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

cloudAuditLogging

如果要将集群的 Kubernetes API 服务器中的审核日志与 Cloud Audit Logs 集成,请填写此部分。否则,请移除此部分或将其注释掉。

cloudAuditLogging.projectid

字符串。要在其中查看审核日志的 Google Cloud 项目的 ID。例如:

cloudAuditLogging:
  projectid: "my-audit-project"

cloudAuditLogging.clusterlocation

字符串。您要在其中存储审核日志的 Google Cloud 地区。建议选择一个靠近您的本地数据中心的地区。例如:

cloudAuditLogging:
  clusterlocation: "us-central1"

cloudAuditLogging.serviceaccountkeypath

字符串。审核日志记录服务帐号的 JSON 密钥文件的路径。例如:

cloudAuditLogging:
  serviceaccountkeypath: "my-key-folder/audit-log-key.json"