创建用户集群(基本)

本页面介绍了如何创建用户集群。

本主题中的步骤是在假设您使用了 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 地址和主机名的数组。它们是 Anthos GKE On-Prem (GKE On-Prem) 将分配给您的用户集群节点的 IP 地址和主机名。

在主机配置文件中,您还可以指定用户集群节点将使用的 DNS 服务器、时间服务器和默认网关的地址。

searchdomainsfordns 字段是要在集群中使用的一组 DNS 搜索网域。这些网域会被用作网域搜索列表的一部分。

配置文件中的已填充字段

回想一下,在创建管理员工作站时,您填充了名为 admin-ws-config.yaml 的配置文件。gkeadm 命令行工具使用 admin-ws-config.yaml 文件创建管理员工作站。

gkeadm 创建管理员工作站后,它生成另一个名为 user-cluster.yaml 的配置文件。此配置文件位于您的管理员工作站上,用于创建您的用户集群。

admin-ws-config.yamluser-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.0-gke.13"

network.ipMode.type

字符串。设置为 "static"

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

字符串。由于您使用的是静态 IP 地址,因此必须有一个主机配置文件,如配置静态 IP 中所述。将 network.ipBlockFilePath 设置为主机配置文件的路径。例如:

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

network.serviceCIDRnetwork.podCiDR

字符串。用户集群必须具有用于服务的 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 下网络名称。例如:

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

loadBalancer.vips

字符串。将 loadBalancer.vips.controlPlaneVIP 的值设置为您已选择在负载平衡器上为用户集群的 Kubernetes API 服务器配置的 IP 地址。将 loadBalancer.vips.ingressVIP 的值设置为您为用户集群中的入站服务在负载平衡器上配置的 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

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

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

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

loadBalancer:.
  seesaw:
    memoryMB: 8192

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"

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.yaml

其中,[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubecoonfig 文件的路径。

如果该命令返回任何 FAILURE 消息,请修复问题并再次验证文件。

如果您想跳过更耗时的验证,请传递 --fast 标志。 要跳过各项验证,请使用 --skip-validation-xxx 标志。要详细了解 check-config 命令,请参阅运行预检检查

创建负载平衡器

为您的 Seesaw 负载平衡器创建并配置虚拟机:

gkectl create loadbalancer --config [CONFIG_FILE]

其中,[CONFIG_FILE] 是配置文件的路径。

创建用户集群

创建用户集群:

gkectl create cluster --config [CONFIG_FILE]

其中,[CONFIG_FILE] 是配置文件的路径。