本页面介绍了如何创建用户集群。
本主题中的步骤是在假设您使用了 gkeadm
创建管理员工作站的前提下编写的。如果您未使用 gkeadm
,但按照使用静态 IP 地址创建管理员工作站中的步骤操作,则需要在完成本主题时进行一些调整。各个步骤说明了所有必要的调整。
如果您使用了代理,则所有 gkectl
命令都会自动针对来自管理员工作站的互联网请求,使用您在配置文件中设置的同一代理。如果您的管理员工作站不在同一代理后面,请参阅以下“创建管理员工作站”高级主题中的“手动代理选项”:
通过 SSH 连接到管理员工作站
按照与管理员工作站建立 SSH 连接中的说明,通过 SSH 连接到管理员工作站。
您的管理员工作站已激活您的组件访问服务帐号。在管理员工作站上完成本主题中的所有其余步骤。
为您的用户集群配置静态 IP
如需指定您要用于用户集群的静态 IP 地址,请创建一个名为 user-cluster-ipblock.yaml
的 IP 地址块文件。在此练习中,您需要指定三个 IP 地址以供用户集群使用。
下面是一个具有三个主机的 IP 地址块文件的示例:
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 地址和主机名。
在 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.5.2-gke.3"
network.ipMode.type
字符串。将此项设置为 "static"
。
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
字符串。由于您使用的是静态 IP 地址,因此必须有一个 IP 地址块文件,如配置静态 IP 地址中所述。将 network.ipBlockFilePath
设置为 IP 地址块文件的路径。例如:
network: ipMode: ipBlockFilePath: "/my-config-directory/user-cluster-ipblock-.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 虚拟机的 IP 地址块文件的路径。例如:
loadbalancer: ... seesaw: ipBlockFilePath: "user-seesaw-ipblock.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 地址。否则,请将其设置为 false
。例如:
stackdriver: enableVPC: false
配置文件中的其他字段
除了本主题中显示的字段之外,集群配置文件还有几个字段。例如,您可以使用 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] 是用户集群配置文件的路径。 例如
user-cluster.yaml
。
如果该命令返回任何 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] 是用户集群配置文件的路径。