本页面介绍了如何创建管理员集群。
本主题中的步骤假定您使用 gkeadm
创建管理员工作站。如果您未使用 gkeadm
,而是按照高级主题创建具有静态 IP 地址的管理员工作站进行操作,则可能需要按照每个步骤中的说明进行调整。对于 DHCP 管理员工作站,您必须使用相应的 DHCP 安装指南。
如果您使用了代理,则所有 gkectl
命令都会自动针对来自管理员工作站的互联网请求,使用您在配置文件中设置的同一代理。如果您的管理员工作站不在同一代理后面,请参阅“创建管理员工作站”高级主题静态 IP | DHCP 中的“手动代理选项”。
通过 SSH 连接到管理员工作站
按照与管理员工作站建立 SSH 连接中的说明,通过 SSH 连接到管理员工作站。
您的管理员工作站已激活您列入许可名单的服务帐号。在管理员工作站上完成本主题中的所有其余步骤。
为您的管理员集群配置静态 IP
如需指定您要用于管理员集群的静态 IP 地址,请创建一个名为 admin-hostconfig.yaml
的主机配置文件。在本练习中,您需要指定五个 IP 地址以供管理员集群使用。
以下是包含五个主机的主机配置文件的示例:
hostconfig: dns: 172.16.255.1 tod: 216.239.35.0 otherdns: - 8.8.8.8 - 8.8.4.4 othertod: - ntp.ubuntu.com searchdomainsfordns: - "my.local.com" blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.10 hostname: admin-host1 - ip: 172.16.20.11 hostname: admin-host2 - ip: 172.16.20.12 hostname: admin-host3 - ip: 172.16.20.13 hostname: admin-host4 - ip: 172.16.20.14 hostname: admin-host5
ips
字段是 IP 地址和主机名的数组。它们是 GKE On-Prem 将分配给管理员集群节点的 IP 地址和主机名。
在主机配置文件中,您还可以指定管理员集群节点将使用的 DNS 服务器、时间服务器和默认网关的地址。
searchdomainsfordns
字段是要在集群中使用的一组 DNS 搜索网域。这些网域会用作网域搜索列表的一部分。
GKE On-Prem 配置文件中的填充字段
回想一下,在创建管理员工作站时,您填写了名为 admin-ws-config.yaml
的配置文件。gkeadm
命令行工具使用 admin-ws-config.yaml
文件创建管理员工作站。
gkeadm
创建管理员工作站后,它生成另一个名为 admin-cluster.yaml
的配置文件。此配置文件位于您的管理员工作站上,用于创建您的管理员集群。
admin-ws-config.yaml
和 admin-cluster.yaml
文件具有多个相同的字段。这些常用字段的值已填充到您的 admin-cluster.yaml
文件中。
这些字段已使用默认值和您在创建管理员工作站时提供的值进行填充:
bundlePath: vCenter: credentials: address: username: password: datastore: resourcePool: caCertPath: datacenter: cluster: loadbalancer seesaw: cpus: memoryMB: enableHA: gcrKeyPath: stackdriver: projectID: serviceAccountKeyPath:
保持所有填充值不变。
填写 GKE On-Prem 配置文件的其余部分
接下来,您需要填写 admin-cluster.yaml
文件中的其余字段。
vCenter.dataDisk
字符串。GKE On-Prem 会创建一个虚拟机磁盘 (VMDK) 来保存管理员集群的 Kubernetes 对象数据。安装程序会为您创建 VMDK,但您必须在 vCenter.dataDisk
字段中提供 VMDK 的名称。例如:
vCenter: ... dataDisk: "my-disk.vmdk"
- vSAN 数据存储区:为 VMDK 创建文件夹
如果您使用的是 vSAN 数据存储区,则需要将 VMDK 放在一个文件夹中。您必须提前手动创建文件夹。为此,您可以使用
govc
创建文件夹:govc datastore.mkdir -namespace=true my-gke-on-prem-folder
然后将
vCenter.dataDisk
设置为 VMDK 的路径(包括文件夹)。例如:vDenter: ... dataDisk: "my-gke-on-prem-folder/my-disk.vmdk"
network.ipMode.type
字符串。将此项设置为 "static"
。
network: ipMode: type: "static"
network.ipBlockFilePath
字符串。由于您使用的是静态 IP 地址,因此必须有一个主机配置文件,如配置静态 IP 中所述。将 network.ipBlockFilePath
设置为主机配置文件的路径。例如:
network: ipBlockFilePath: "/my-config-directory/admin-hostconfig.yaml"
network.serviceCIDR
和 network.podCiDR
字符串。管理员集群必须拥有用于 Service 的 IP 地址范围以及用于 pod 的 IP 地址范围。这些范围由 network.serviceCIDR
和 network.podCIDR
字段指定。这些字段将填入默认值。如果需要,您可以将填充的值更改为您选择的值。
Service 和 pod 范围不得重叠。此外,Service 和 pod 范围不得与任何集群中节点的 IP 地址重叠。
示例:
network: ... serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16"
network.vCenter.networkName
字符串。您的集群节点所在的 vSphere 网络的名称。
如果名称中包含特殊字符,您必须对其使用转义序列。
特殊字符 | 转义序列 |
---|---|
正斜杠 (/ ) |
%2f |
反斜杠 (\ ) |
%5c |
百分号 (% ) |
%25 |
如果网络名称不唯一,则可以指定网络的路径,例如 /DATACENTER/network/NETWORK_NAME
。
例如:
network: vCenter: networkName: "MY-CLUSTER-NETWORK"
loadBalancer.vips
字符串。将 loadBalancer.vips.controlPlaneVIP
的值设置为您已选择在负载平衡器上为管理员集群的 Kubernetes API 服务器配置的 IP 地址。将 loadBalancer.vips.addonsVIP
的值设置为您已在负载平衡器上为插件配置的 IP 地址。例如:
loadBalancer: ... vips: controlplaneVIP: "203.0.113.3" addonsVIP: "203.0.113.4"
loadBalancer.kind
字符串。将此项设置为 "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.cpus
整数。您的 Seesaw 虚拟机的 CPU 数量。例如:
loadBalancer:. seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
整数。您的 Seesaw 虚拟机的内存大小(以 MB 为单位)。例如:
loadBalancer:. seesaw: memoryMB: 8192
loadBalancer.seesaw.masterIP
字符串。您选择的 Seesaw 虚拟机将公告的 IP 地址。例如:
loadBalancer: seesaw: masterIP: "172.16.20.21"
loadBalancer.seesaw.enableHA
布尔值。将此项设置为 false
。例如:
loadBalancer:. seesaw: enableHA: false
proxy
字符串。如果您的网络位于代理服务器后面,则您必须指定代理地址以及不应通过代理服务器的所有地址。
设置 proxy.url
以指定代理服务器的 HTTP
地址。即使端口号与架构的默认端口相同,也必须包含端口号。您在此处指定的代理服务器会被 GKE On-Prem 集群使用。此外,除非您在管理员工作站上设置 HTTPS_PROXY
环境变量,否则您的管理员工作站会自动配置为使用同一代理服务器。
设置 proxy.noProxy
可定义不应通过代理服务器的 IP 地址、IP 地址范围、主机名和域名的列表。当 GKE On-Prem 向其中一个地址、主机或网域发送请求时,该请求会直接发送。 例如:
proxy: url: "http://my-proxy.example.local:80" noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"
stackdriver.clusterLocation
字符串。您要在其中存储日志的 Google Cloud 地区。建议选择一个靠近您的本地数据中心的地区。例如:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
布尔值。如果集群的网络由 VPC 控制,请将 stackdriver.enableVPC
设置为 true
。这样可以确保所有遥测流都通过 Google 的受限 IP 地址。否则,请将其设置为 false
。例如:
stackdriver: enableVPC: false
配置文件中的其他字段
除了本主题中显示的字段之外,GKE On-Prem 配置文件还有几个字段。例如,您可以使用 manualLB
字段将 GKE On-Prem 配置为在手动负载平衡模式下运行。
如需查看配置文件中字段的完整说明,请参阅使用 DHCP 安装和使用静态 IP 地址安装。
验证配置文件
修改配置文件后,请运行 gkectl check-config
验证文件是否有效并可用于安装:
gkectl check-config --config admin-cluster.yaml
如果该命令返回任何 FAILURE
消息,请修复问题并再次验证文件。
如果您想跳过更耗时的验证,请传递 --fast
标志。如需跳过各项验证,请使用 --skip-validation-xxx
标志。如需详细了解 check-config
命令,请参阅运行预检检查。
运行 gkectl prepare
运行 gkectl prepare
以初始化您的 vSphere 环境:
gkectl prepare --config admin-cluster.yaml --skip-validation-all
创建负载平衡器
为您的 Seesaw 负载平衡器创建并配置虚拟机:
gkectl create loadbalancer --config [CONFIG_FILE]
其中,[CONFIG_FILE] 是配置文件的路径。
创建管理员集群
创建管理员集群:
gkectl create admin --config [CONFIG_FILE]
其中,[CONFIG_FILE] 是配置文件的路径。