本页面介绍了如何创建用户集群。
本主题中的步骤是在假设您使用了 gkeadm
创建管理员工作站的前提下编写的。如果您未使用 gkeadm
,但按照使用静态 IP 地址创建管理员工作站中的步骤操作,则需要在完成本主题时进行一些调整。各个步骤说明了所有必要的调整。
如果您使用了代理,则所有 gkectl
命令都会自动针对来自管理员工作站的互联网请求,使用您在配置文件中设置的同一代理。如果您的管理员工作站不在同一代理后面,请参阅“创建管理员工作站”高级主题静态 IP | DHCP 中的“手动代理选项”。
通过 SSH 连接到管理员工作站
按照与管理员工作站建立 SSH 连接中的说明,通过 SSH 连接到管理员工作站。
您的管理员工作站已激活您列入许可名单的服务帐号。在管理员工作站上完成本主题中的所有其余步骤。
为您的用户集群配置静态 IP
如需指定您要用于用户集群的静态 IP 地址,请创建一个名为 user-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.15 hostname: user-host1 - ip: 172.16.20.16 hostname: user-host2 - ip: 172.16.20.17 hostname: user-host3
ips
字段是 IP 地址和主机名的数组。它们是 GKE On-Prem 将分配给用户集群节点的 IP 地址和主机名。
在主机配置文件中,您还可以指定用户集群节点将使用的 DNS 服务器、时间服务器和默认网关的地址。
searchdomainsfordns
字段是要在集群中使用的一组 DNS 搜索网域。这些网域会用作网域搜索列表的一部分。
配置文件中的已填充字段
回想一下,在创建管理员工作站时,您填写了名为 admin-ws-config.yaml
的配置文件。gkeadm
命令行工具使用 admin-ws-config.yaml
文件创建管理员工作站。
gkeadm
创建管理员工作站后,它会生成另一个名为 user-cluster.yaml
的配置文件。此配置文件位于您的管理员工作站上,用于创建您的用户集群。
admin-ws-config.yaml
和 user-cluster.yaml
文件具有多个相同的字段。这些常用字段的值已填充到您的 user-cluster.yaml
文件中。
这些字段已使用您在创建管理员工作站时提供的值进行填充:
stackdriver: projectID: serviceAccountKeyPath: gkeConnect: projectID: registerServiceAccountKeyPath: agentServiceAccountKeyPath:
填写配置文件的其余部分
接下来,您需要填写 user-cluster.yaml
文件中的其余字段。
name
字符串。您为用户集群选择的名称。例如:
name: "my-user-cluster"
gkeOnPremVersion
字符串。用户集群的 GKE On-Prem 版本。例如:
gkeOnPremVersion: "1.4.3-gke.3"
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.ingressVIP
的值设置为您为用户集群中的 Ingress 服务在负载平衡器上配置的 IP 地址。例如:
loadBalancer: ... vips: controlplaneVIP: "203.0.113.5" ingressVIP: "203.0.113.6"
loadBalancer.kind
字符串。将此项设置为 "Seesaw"
。例如:
loadBalancer: kind: "Seesaw"
loadBalancer.seesaw.ipBlockFilePath
字符串。将此值设置为 Seesaw 虚拟机的 hostconfig 文件的路径。例如:
loadbalancer: ... seesaw: ipBlockFilePath: "user-seesaw-hostconfig.yaml"
loadBalancer.seesaw.vird
整数。您的 Seesaw 虚拟机的虚拟路由器标识符。此标识符在 VLAN 中必须具有唯一性。有效范围为 1-255。例如:
loadBalancer: seesaw: vrid: 126
loadBalancer.seesaw.masterIP
字符串。Seesaw 虚拟机的控制层面 IP 地址。例如:
loadBalancer: seesaw: masterIP: "203.0.113.7"
loadBalancer.seesaw.cpus
整数。您的 Seesaw 虚拟机的 CPU 数量。例如:
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
整数。您的 Seesaw 虚拟机的内存大小(以 MB 为单位)。例如:
loadBalancer:. seesaw: memoryMB: 8192
loadBalancer.seesaw.enableHA
布尔值。将此项设置为 false
。例如:
loadBalancer:. seesaw: enableHA: false
nodePools.name
字符串。您为节点池选择的名称。例如:
nodePools: - name: "my-user-pool"
nodePools.replicas
整数。您的节点池中的虚拟机数量。将此项设置为 3
。
nodePools: - name: "my-user-pool" replicas: 3
stackdriver.clusterLocation
字符串。您要在其中存储日志的 Google Cloud 地区。建议选择一个靠近您的本地数据中心的区域。
stackdriver.enablevpc
如果集群的网络由 VPC 控制,请将 stackdriver.enablevpc
设置为 true
。这样可以确保所有遥测流都通过 Google 的受限 IP 地址。
stackdriver.enableVPC
布尔值。如果集群的网络由 VPC 控制,请将 stackdriver.enableVPC
设置为 true
。这样可以确保所有遥测流都通过 Google 的受限 IP 地址。否则,请将其设置为 false
。例如:
stackdriver: enableVPC: false
配置文件中的其他字段
除了本主题中显示的字段之外,GKE On-Prem 配置文件还有几个字段。例如,您可以使用 manuallbspec
字段将 GKE On-Prem 配置为在手动负载平衡模式下运行。
如需查看配置文件中字段的完整说明,请参阅使用 DHCP 安装和使用静态 IP 地址安装。
验证配置文件
修改配置文件后,请运行 gkectl check-config
验证文件是否有效并可用于安装:
gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]
其中:
[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。
[CONFIG_FILE] 是用户集群配置文件的路径。
如果该命令返回任何 FAILURE
消息,请修复问题并再次验证文件。
如果您想跳过更耗时的验证,请传递 --fast
标志。如需跳过各项验证,请使用 --skip-validation-xxx
标志。如需详细了解 check-config
命令,请参阅运行预检检查。
创建负载平衡器
为您的 Seesaw 负载平衡器创建并配置虚拟机:
gkectl create loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]
其中:
[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。
[CONFIG_FILE] 是用户集群配置文件的路径。
创建用户集群
创建用户集群:
gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]
其中:
[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。
[CONFIG_FILE] 是用户集群配置文件的路径。