创建管理员集群

本页面介绍如何为 VMware 上的 Anthos 集群 (GKE On-Prem) 创建管理员集群。

此处为完整说明。如需查看创建管理员集群的简要介绍,请参阅创建管理员集群(快速入门)

准备工作

创建管理员工作站

与管理员工作站建立 SSH 连接

与管理员工作站建立 SSH 连接

您应该还记得,gkeadm 在管理员工作站上激活了您的组件访问服务帐号。

在管理员工作站的主目录中完成本主题中的所有其余步骤。

凭据配置文件

使用 gkeadm 创建管理员工作站时,您填写了一个名为 credential.yaml 的凭据配置文件。此文件包含 vCenter 服务器的用户名和密码。

管理员集群配置文件

gkeadm 创建管理员工作站时,它生成了一个名为 admin-cluster.yaml 的配置文件。此配置文件用于创建管理员集群。

填写配置文件

name

如果要为管理员集群指定名称,请填写 name 字段。

bundlePath

系统已为您填写此字段。

vCenter

此部分中的大多数字段已使用您在创建管理员工作站时输入的值进行填充。dataDisk 字段除外,您必须现在填写此字段。

network

确定您要集群节点获取其 IP 地址的方式。选项包括:

  • 从 DHCP 服务器获取。将 network.ipMode.type 设置为 "dhcp"

  • 从您提供的静态 IP 地址列表获取。将 network.ipMode.type 设置为 "static",并创建一个提供静态 IP 地址的 IP 地址块文件

network 部分中剩余的字段提供值。

无论您是依赖 DHCP 服务器还是指定静态 IP 地址列表,都需要足够的 IP 地址来满足以下需求:

  • 管理员集群中的三个节点,运行管理员集群控制层面和插件。

  • 管理员集群中的一个额外节点,供升级时临时使用。

  • 对于要创建的每个用户集群,管理员集群中需要有一个或三个节点来运行用户集群的控制层面组件。如果您希望用户集群具有高可用性 (HA) 控制层面,则需要将管理员集群中的三个节点用于用户集群控制层面。否则,管理员集群只需要为用户集群控制层面提供一个节点。

例如,假设您打算创建两个用户集群:一个具有高可用性控制层面,另一个具有非高可用性控制层面。那么您需要为管理员集群中的以下节点提供 8 个 IP 地址:

  • 用于管理员集群控制层面和插件的三个节点
  • 一个临时节点
  • 用于高可用性用户集群控制层面的三个节点
  • 用于非高可用性用户集群控制层面的一个节点

如前所述,如果要使用静态 IP 地址,则需要提供 IP 地址块文件。下面是一个包含 8 个主机的 IP 地址块文件的示例:

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
    - ip: 172.16.20.15
      hostname: admin-host6
    - ip: 172.16.20.16
      hostname: admin-host7
    - ip: 172.16.20.17
      hostname: admin-host8

loadBalancer

为管理员集群的 Kubernetes API 服务器预留一个 VIP 地址。为插件服务器预留另一个 VIP 地址。提供您的 VIP 地址作为 loadBalancer.vips.controlPlaneVIPloadBalancer.vips.addonsVIP 的值。

确定要使用的负载平衡类型。选项包括:

  • Seesaw 捆绑式负载平衡。将 loadBalancer.kind 设置为 "Seesaw",然后填写 loadBalancer.seesaw 部分。

  • 使用 F5 BIG-IP 的集成式负载平衡。将 loadBalancer.kind 设置为 "F5BigIP",然后填写 f5BigIP 部分。

  • 手动负载平衡。将 loadBalancer.kind 设置为 "ManualLB",然后填写 manualLB 部分。

antiAffinityGroups

根据您的偏好将 antiAffinityGroups.enabled 设置为 truefalse

adminMaster

根据您的偏好填写 adminMaster 部分或将其移除。

addonNode

根据您的偏好将 addonNode.autoResize.enabled 设置为 truefalse

proxy

如果将拥有管理员集群节点的网络位于代理服务器后面,请填写 proxy 部分。

privateRegistry

确定 Anthos Clusters on VMware 组件的容器映像的存储位置。选项包括:

  • gcr.io。请勿填写 privateRegistry 部分。

  • 您自己的私有 Docker 注册表。

如需创建您自己的私有 Docker 注册表,请执行以下操作:

  1. 请填写 privateRegistry 部分。

  2. 将注册表证书复制到 /etc/docker/certs.d/REGISTRY_SERVER_ADDRESS/ca.crt 所需的位置(如果此位置不存在)。注册表证书在管理员种子配置的 privateRegistry.caCertPath 中设置。

    mkdir -p /etc/docker/certs.d/REGISTRY_SERVER_ADDRESS
    cp CERTIFICATE_PATH /etc/docker/certs.d/REGISTRY_SERVER_ADDRESS/ca.crt
    

    替换以下内容:

    • REGISTRY_SERVER_ADDRESS:您的私有注册表的 IP 地址
    • CERTIFICATE_PATH:注册表证书的路径

componentAccessServiceAccountKeyPath

系统已为您填写此字段。

gkeConnect

如果要将管理员集群注册到 Google Cloud 舰队,请填写 gkeConnect 部分。

stackdriver

如果要为集群启用 Cloud Logging 和 Cloud Monitoring,请填写 stackdriver 部分。

cloudAuditLogging

如果要为集群启用 Cloud Audit Logs,请填写 cloudAuditLogging 部分。

clusterBackup

根据您的偏好将 clusterBackup.datastore 设置为 truefalse

autoRepair

根据您的偏好将 autoRepair.enabled 设置为 truefalse

secretsEncryption

如果要启用始终开启的 Secret 加密,请填写 secretsEncryption 部分。

验证配置文件

填写管理员集群配置文件后,请运行 gkectl check-config 以验证该文件是否有效:

gkectl check-config --config [CONFIG_PATH]

其中 [CONFIG_PATH] 是管理员集群配置文件的路径。

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

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

运行 gkectl prepare

运行 gkectl prepare 以初始化您的 vSphere 环境:

gkectl prepare --config [CONFIG_PATH]

gkectl prepare 命令可执行以下预备任务:

  • 将操作系统映像导入 vSphere 并将其标记为虚拟机模板。

  • 如果您使用的是私有 Docker 注册表,此命令会将 Docker 容器映像推送到您的注册表。

  • (可选)此命令会验证容器映像的版本证明,从而验证映像是由 Google 构建和签名的,并已准备好部署。

为管理员集群创建 Seesaw 负载均衡器

如果您已选择使用捆绑式 Seesaw 负载均衡器,请执行本部分中的步骤。否则,您可以跳过此部分。

Seesaw 负载均衡器创建并配置虚拟机:

gkectl create loadbalancer --config [CONFIG_PATH]

创建管理员集群

创建管理员集群:

gkectl create admin --config [CONFIG_PATH]

其中 [CONFIG_PATH] 是管理员集群配置文件的路径。

找到管理员集群 kubeconfig 文件的位置

gkectl create admin 命令会在当前目录中创建一个名为 kubeconfig 的 kubeconfig 文件。您稍后需要此 kubeconfig 文件才能与管理员集群进行交互。

如果愿意,您可以更改 kubeconfig 文件的名称和位置。

验证管理员集群是否正在运行

验证管理员集群是否正在运行:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG

ADMIN_CLUSTER_KUBECONFIG 替换为管理员集群 kubeconfig 文件的路径。

输出会显示管理员集群节点。 例如:

gke-admin-master-hdn4z            Ready    control-plane,master ...
gke-admin-node-7f46cc8c47-g7w2c   Ready ...
gke-admin-node-7f46cc8c47-kwlrs   Ready ...

管理 checkpoint.yaml 文件

在您运行 gkectl create admin 命令创建管理员集群时,它在管理员集群数据磁盘所在的数据存储区文件夹中创建了一个 checkpoint.yaml 文件。默认情况下,此文件的名称为 DATA_DISK_NAME‑checkpoint.yaml。如果 DATA_DISK_NAME 的长度大于或等于 245 个字符,那么由于 vSphere 对文件名长度的限制,其名称为 DATA_DISK_NAME.yaml。将 DATA_DISK_NAME 替换为数据磁盘的名称。

此文件包含管理员集群状态和凭据,用于未来的升级。与管理员集群数据磁盘一样,除非您按照删除管理员集群的流程操作,否则请勿删除此文件。

如果您已在 vCenter 中启用了虚拟机加密,则在您要上传检查点文件时,您必须拥有 Cryptographer.Access 权限才能创建或升级管理员集群。如果您无法获取此权限,则可以在运行相关命令时禁止使用隐藏的标志 --disable-checkpoint 上传检查点文件。

在您运行 gkectl upgrade admin 命令或运行影响管理员集群的 gkectl update 命令时,checkpoint.yaml 文件会自动更新。

问题排查

请参阅排查集群创建和升级问题

后续步骤

创建用户集群