创建基本集群

本文是相关指南的第二部分,将逐步介绍 Anthos Clusters on VMware (GKE On-Prem) 的小型概念验证安装。第一部分是设置极简基础架构,介绍如何规划 IP 地址并为部署设置必要的 vSphere 和 Google Cloud 基础架构。本文档以您在上一部分中的设置和规划为基础,介绍如何在 vSphere 环境中创建管理员工作站、管理员集群和用户集群。然后,您可以部署应用

与这种简单安装的基础架构设置一样,您使用本文档设置的集群可能不适合您的实际生产需求和使用场景。如需详细了解生产安装及其最佳实践和说明,请参阅安装指南

准备工作

过程概览

以下是此设置涉及的主要步骤:

  1. 确保您拥有配置 Anthos Clusters on VMware 所需的所有必要信息,包括您的 vCenter 用户名和密码,以及您在上一部分中准备的 IP 地址。
  2. 使用拥有创建服务帐号所需权限的帐号登录 Google Cloud CLI
  3. 使用创建管理员集群和用户集群所需的资源和工具(包括完成设置所需的其他服务帐号)创建管理员工作站
  4. 创建管理员集群以托管管理员集群和用户集群的 Kubernetes 控制平面,以及管理和更新用户集群。
  5. 创建用户集群,使得可以运行实际的工作负载。

收集信息

在开始填写 Anthos Clusters on VMware 配置文件之前,请确保您拥有在设置极简基础架构中准备的所有必要信息。您需要以下所有值来配置 Anthos Clusters on VMware 并完成此设置。

vCenter 详细信息

IP 地址

确保您拥有在规划 IP 地址中选择的所有 IP 地址,包括:

  • 一个用于管理员工作站的 IP 地址。
  • 您的管理员集群和用户集群节点的 IP 地址,包括可在集群升级期间使用的两个额外节点的地址。
  • 管理员集群 Kubernetes API 服务器的虚拟 IP 地址(VIP 地址)。
  • 用户集群 Kubernetes API 服务器的 VIP 地址。
  • 用户集群的 Ingress VIP 地址。
  • 用户集群的 10 个 Service VIP 地址。
  • 用户集群 Pod 和 Service 的 CIDR 范围(如果您需要使用避免重叠中所述的非默认范围)。

您还需要:

  • DNS 服务器的 IP 地址。
  • NTP 服务器的 IP 地址。
  • 具有您的管理员工作站和集群节点的子网的默认网关 IP 地址。

Google Cloud 详细信息

登录 Google Cloud CLI

设置 Anthos Clusters on VMware 需要多个具有不同权限的服务帐号。虽然您必须手动创建组件访问服务帐号,但 gkeadm 命令行工具可以在创建管理员工作站时为您创建和配置其余帐号的默认版本。但是,要执行此操作,您必须使用具有创建和配置服务帐号所需的权限的帐号登录 Google Cloud CLI,因为 gkeadm 会在您执行此设置时使用您当前的 gcloud CLI account 属性

  1. 登录 gcloud CLI。您可以使用任何 Google 帐号,但该帐号必须具有必需的权限。如果您已按照本指南的上一部分操作,那么您可能已经使用创建组件访问服务帐号所需的帐号登录。

    gcloud auth login
    
  2. 验证您的 gcloud CLI account 属性是否已正确设置:

    gcloud config list
    

    输出会显示 SDK account 属性的值。例如:

    [core]
    account = my-name@google.com
    disable_usage_reporting = False
    Your active configuration is: [default]
    

创建管理员工作站。

在创建任何集群之前,您需要设置管理员工作站,然后通过 SSH 连接到该工作站。管理员工作站是一个独立的虚拟机,包含您在 vSphere 环境中创建 Anthos 集群所需的工具和资源。本部分中的步骤使用 gkeadm 命令行工具,该工具可用于 64 位的 Linux、Windows 10、Windows Server 2019 和 macOS 10.15 及更高版本。

生成模板

运行以下命令以生成模板配置文件:

./gkeadm create config

如果运行此命令,则系统会在当前目录中生成以下模板配置文件:

  • credential.yaml,可用于提供 vCenter 登录详细信息
  • admin-ws-config.yaml,可用于提供管理员工作站配置设置

填写凭据文件

credential.yaml 中,填写 vCenter 用户名和密码。例如:

kind: CredentialFile
items:
- name: vCenter
  username: "my-account-name"
  password: "AadmpqGPqq!a"

填写管理员工作站配置文件

打开 admin-ws-config.yaml 进行修改。完成后,此文件会包含 gkeadm 为此基本安装创建管理员工作站所需的所有信息。部分字段已填写了默认值或生成的值,对于这个简单的安装,请勿更改这些值。

使用您之前收集的信息,按如下所示填写其余字段。如果您不确定如何设置任何字段的格式,可以查看下面的完整示例配置文件,或查看管理员工作站配置文件参考文档。您可以在单独的标签页或窗口中打开页面,这样方便您在填写字段值时查看该页面。

字段或部分 说明
gcp.componentAccessServiceAccountKeyPath 您为组件访问服务帐号创建的 JSON 密钥文件的路径。
vCenter.credentials.address 您的 vCenter 服务器的 IP 地址或主机名。
vCenter.datacenter 您的 vCenter 数据中心的名称。
vCenter.datastore vCenter 数据存储区的名称。
vCenter.cluster 您的 vCenter 集群的名称。
vCenter.network 要在其中创建管理员工作站的 vCenter 网络的名称。
vCenter.resourcePool 将此字段设置为 "CLUSTER_NAME/Resources",注意将 CLUSTER_NAME 替换为您的 vSphere 集群的名称。
vCenter.caCertPath vCenter 服务器的根 CA 证书的路径。
proxyURL 如果用于运行 gkeadm 的机器需要使用代理服务器来访问互联网,请将此字段设置为代理服务器的网址。
adminWorkstation.ipAllocationMode 将此字段设置为 "static"
adminWorkstation.network.hostConfig.ip 之前选择的 IP 地址,用于管理员工作站。
adminWorkstation.network.hostConfig.gateway 您要用于管理员工作站和集群节点的子网的默认网关 IP 地址。
adminWorkstation.network.hostConfig.netmask 包含您的管理员工作站的网络的网络掩码。
adminWorkstation.network.hostConfig.dns 管理员工作站可以使用的 DNS 服务器的 IP 地址。
adminWorkstation.proxyURL 如果您的网络位于代理服务器后面,并且您希望管理员工作站和集群使用相同的代理服务器,请将此字段设置为代理服务器的网址。

管理员工作站配置文件示例

以下是填写好的管理员工作站配置文件的示例:

gcp:
  componentAccessServiceAccountKeyPath: "/usr/local/google/home/me/keys/component-access-key.json"
vCenter:
  credentials:
    address: "vc01.example"
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  datacenter: "vc01"
  datastore: "vc01-datastore-1"
  cluster: "vc01-workloads-1"
  network: "vc01-net-1"
  resourcePool: "vc01-workloads-1/Resources"
  caCertPath: "/usr/local/google/home/stevepe/certs/vc01-cert.pem"
proxyUrl: ""
adminWorkstation:
  name: gke-admin-ws-220304-014925
  cpus: 4
  memoryMB: 8192
  diskGB: 50
  dataDiskName: gke-on-prem-admin-workstation-data-disk/gke-admin-ws-220304-014925-data-disk.vmdk
  dataDiskMB: 512
  network:
    ipAllocationMode: "static"
    hostConfig:
      ip: "172.16.20.49"
      gateway: "172.16.20.1"
      netmask: "255.255.255.0"
      dns:
      - "203.0.113.1"
  proxyUrl: ""
  ntpServer: ntp.ubuntu.com

创建管理员工作站

使用以下命令创建管理员工作站:

./gkeadm create admin-workstation --auto-create-service-accounts

运行以下命令:

  • 创建管理员工作站
  • 自动创建您的安装所需的任何其他服务帐号
  • 为管理员集群和用户集群创建模板配置文件

输出中会包含有关管理员工作站创建过程的详细信息,并提供一个命令供您通过 SSH 连接到管理员工作站:

...
Admin workstation is ready to use.
Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation
This file is required for future upgrades
SSH into the admin workstation with the following command:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
********************************************************************

如需详细了解如何创建管理员工作站,请参阅创建管理员工作站

连接到管理员工作站

使用上述输出中显示的命令获取与管理员工作站的 SSH 连接。例如:

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49

查看生成的文件

在管理员工作站上,列出主目录中的文件:

ls -1

输出内容应包含:

  • admin-cluster.yaml(用于创建管理员集群的模板配置文件)。
  • user-cluster.yaml(用于创建用户集群的模板配置文件)。
  • gkeadm 为您创建的两个服务帐号的 JSON 密钥文件:连接注册服务帐号和日志记录监控服务帐号。记下连接和注册服务帐号的 JSON 密钥文件的名称。稍后创建集群时将用到它。

例如:

admin-cluster.yaml
admin-ws-config.yaml
sa-key.json
connect-register-sa-2203040617.json
credential.yaml
log-mon-sa-2203040617.json
logs
vc01-cert.pem
user-cluster.yaml

创建管理员集群

现在,您已经使用 vCenter 和其他详细信息配置了管理员工作站,可以使用它来在 vSphere 环境中创建管理员集群了。在开始执行此步骤之前,请确保您已与管理员工作站建立 SSH 连接,如上所述。以下所有命令均在管理员工作站上运行。

为管理员集群指定静态 IP 地址

如需指定您之前规划的管理员集群节点的静态 IP 地址,请创建一个名为 admin-cluster-ipblock.yamlIP 地址块文件

您的管理员集群中的以下节点需要五个 IP 地址:

  • 用于运行管理员集群控制平面和插件的三个节点

  • 一个额外节点,供升级时临时使用

  • 一个用于为稍后创建的用户集群运行控制平面的节点

以下是一个 IP 地址块文件示例,其中包含五个节点的地址:

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.20.1
    ips:
    - ip: 172.16.20.50
      hostname: admin-vm-1
    - ip: 172.16.20.51
      hostname: admin-vm-2
    - ip: 172.16.20.52
      hostname: admin-vm-3
    - ip: 172.16.20.53
      hostname: admin-vm-4
    - ip: 172.16.20.54
      hostname: admin-vm-5

ips 字段是 IP 地址和主机名的数组。它们是 Anthos clusters on VMware 将分配给管理员集群节点的 IP 地址和主机名。

在 IP 地址块文件中,您还可以为管理员集群节点指定子网掩码和默认网关。

填写管理员集群配置文件

打开 admin-cluster.yaml 进行修改。完成后,此文件会包含 gkectl 为此基本安装创建管理员集群所需的所有信息。部分字段已填写了默认值、生成的值或配置管理员工作站时提供的值(如 vCenter 详细信息),对于这个简单的安装,请勿更改这些值。

使用您之前收集的信息,按如下所示填写其余字段。如果您不确定如何设置任何字段的格式,可以查看下面的完整示例配置文件,或查看管理员集群配置文件参考文档。您可以在单独的标签页或窗口中打开页面,这样方便您在填写字段值时查看该页面。

字段或部分 说明
vCenter.dataDisk 您要用于安装程序创建来保存 Kubernetes 对象数据的虚拟机磁盘 (VMDK) 的名称。
network.hostConfig.dnsServers 集群虚拟机可以使用的 DNS 服务器的 IP 地址。
network.hostConfig.ntpServers 集群虚拟机可以使用的时间服务器的 IP 地址。
network.ipMode.type 将此字段设置为 "static"
network.ipMode.ipBlockFilePath 您之前创建的 IP 地址块文件的路径。
network.serviceCIDRnetwork.podCIDR 仅在您需要使用非默认范围时,才更改这些值(如避免重叠中所述)。
loadBalancer.vips.controlPlaneVIP 您为管理员集群的 Kubernetes API 服务器选择的虚拟 IP 地址(VIP 地址)。
loadbalancer.kind 将此字段设置为 "MetalLB"
antiAffinityGroups 将此字段设置为 "false"
gkeConnect.projectID 将此字段设置为您的 Google 项目的 ID。
gkeConnect.registerServiceAccountKeyPath 将此字段设置为连接注册服务帐号的 JSON 密钥。

管理员集群配置文件示例

以下是填写好的管理员集群配置文件的示例:

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "my-cluster/Resources"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  dataDisk: "vc01-admin-disk.vmdk"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: false
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false

验证管理员集群配置文件

验证管理员集群配置文件是否有效以及是否可以创建集群:

gkectl check-config --config admin-cluster.yaml

将操作系统映像导入 vSphere

使用已完成的配置文件运行 gkectl prepare,以将节点操作系统映像导入 vSphere:

gkectl prepare --config admin-cluster.yaml --skip-validation-all

如果运行此命令,则系统会将映像导入 vSphere,并将其标记为虚拟机模板,包括管理员集群的映像。

创建管理员集群

创建管理员集群:

gkectl create admin --config admin-cluster.yaml

发生故障后恢复管理员集群创建

如果管理员集群创建失败或被取消,您可以再次运行 create 命令:

gkectl create admin --config admin-cluster.yaml

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

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

验证管理员集群正在运行

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

kubectl get nodes --kubeconfig kubeconfig

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

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

创建用户集群

您可以在 Google Cloud 控制台中或通过管理员工作站的命令行为此简单安装创建用户集群。目前,您只能使用 Google Cloud 控制台创建用户集群。

控制台

此方法使用名为 GKE On-Prem API 的 Google Cloud 服务在 vSphere 环境中创建和管理集群。从 Google Cloud 控制台创建用户集群时,此 API 会自动在您选择的舰队宿主项目中启用。如需详细了解此 API 的工作原理,请参阅在 Google Cloud 控制台中创建用户集群。使用此方法还意味着,作为集群创建者,您可以使用 Google 身份自动登录 Google Cloud 控制台中的新集群,但您需要为任何其他用户设置身份验证。

  1. 在 Google Cloud 控制台中,前往 Anthos 集群页面。

    前往“Anthos 集群”页面

  2. 选择您要在其中创建集群的 Cloud 项目。所选项目也将作为舰队宿主项目。该项目必须是管理员集群注册到的项目。创建用户集群后,它会自动注册到所选项目的舰队。

  3. 点击创建集群

  4. 在对话框中,点击本地

  5. 点击 VMware vSphere 旁边的配置

  6. 查看前提条件,然后点击继续

集群基本信息

  1. 输入用户集群的名称
  2. 管理员集群下,从列表中选择您之前创建的管理员集群。如果要使用的管理员集群未显示,请参阅问题排查部分集群基本信息下拉列表中未显示管理员集群

  3. GCP API 位置字段中,从列表中选择 Google Cloud 区域。除了控制运行 GKE On-Prem API 所在的区域之外,此设置还可控制存储以下内容的区域:

    • GKE On-Prem API 管理集群生命周期所需的用户集群元数据
    • 记录、监控和审核系统组件的数据。
  4. 选择用户集群的 Anthos clusters on VMware 版本。

  5. 点击继续以前往网络部分。

网络

在本部分中,您将指定集群的节点、Pod 和 Service 的 IP 地址。对于这个简单的安装,您的集群需要三个地址(三个节点各一个地址)和一个额外的 IP 地址(可用于用户集群升级期间的临时节点)。

  1. 节点 IP 地址部分中,指定静态作为集群的 IP 模式

  2. 使用您之前规划的用户集群节点的地址,填写以下信息:

    1. 输入用户集群的网关的 IP 地址。
    2. 输入用户集群节点的子网掩码
    3. IP 地址部分中,输入用户集群中工作器节点的 IP 地址和(可选)主机名。您可以输入单个 IP v4 地址(例如 192.0.2.1)或 IPv4 CIDR 地址块(例如 192.0.2.0/24)。

      • 如果您输入 CIDR 地址块,请不要输入主机名。
      • 如果您输入单个 IP 地址,则可以选择输入主机名。如果您未输入主机名,则 Anthos clusters on VMware 会使用 vSphere 中的虚拟机名称作为主机名。
    4. 根据需要点击 + 添加 IP 地址以输入更多 IP 地址。

  3. 保留服务 CIDR 和 Pod CIDR 部分的默认值,除非您需要按照避免重叠中的说明使用非默认范围。

  4. 主机配置部分中指定以下信息:

    1. 输入用户集群可以使用的 DNS 服务器的 IP 地址。
    2. 输入 NTP 服务器的 IP 地址。
  5. 点击继续以转到负载均衡器部分。

负载均衡器

MetalLB 配置为负载均衡器。

  1. 负载均衡器类型中,使 MetalLB 保持选中状态。

  2. 虚拟 IP 部分中,输入以下内容:

    • 控制平面 VIP:用于发送到用户集群 Kubernetes API 服务器的流量的目标 IP 地址。此 IP 地址必须与管理员集群节点位于同一 L2 网域中。请勿在地址池部分中添加此地址。

    • Ingress VIP:要在负载均衡器上为 Ingress 代理配置的 IP 地址。此地址必须包含在地址池部分指定的地址池中。

  3. 地址池部分中,指定负载均衡器的地址池,包括入站流量 VIP 地址 - 这些地址是您之前规划的 Service VIP 地址。

    1. 点击 + 添加 IP 地址范围
    2. 输入地址池的名称。
    3. 以 CIDR 表示法(如 192.0.2.0/26)或范围表示法(如 192.0.2.64-192.0.2.72)输入 IP 地址范围。各个池中的 IP 地址不能重叠,并且必须与集群节点位于同一子网。
    4. IP 地址分配下,选择自动
    5. 完成后,请点击完成
  4. 点击继续

控制平面

使用本部分提供的默认值。点击继续

特性

  1. 取消选中启用反亲和性群组。设置最小基础架构时,您只需创建一个 ESXi 主机,因此不应启用反亲和性群组

  2. 点击继续

节点池

您的集群必须至少具有一个节点池。节点池是用于在此集群中创建的节点组的模板。如需了解详情,请参阅创建和管理节点池

查看为节点池配置的默认值。默认值足以满足最小基础架构的需求,但您可以根据需要调整值。

验证并完成

点击验证并完成以创建用户集群。创建用户集群需要 10 分钟或更长时间。Google Cloud 控制台会在验证设置并在数据中心内创建集群时显示状态消息。

创建集群后,您将自动登录到集群。其他操作人员需要按照从 Cloud Console 登录集群中的步骤获取对集群的访问权限。

如果验证设置时出错,Google Cloud 控制台会显示一条错误消息,该消息应该足够明确,以便您修复配置问题并再次尝试创建集群。

如需详细了解可能的错误以及解决方法,请参阅排查在 Google Cloud 控制台中创建用户集群的问题

创建用户集群 kubeconfig 文件

如需通过命令行访问数据中心内的用户集群,您需要从管理员集群获取 kubeconfig 文件。在 Google Cloud 控制台指示用户集群状态为健康后,在管理员工作站上运行以下命令以在本地保存用户集群的新 kubeconfig 文件。替换以下内容:

  • CLUSTER_NAME:新创建的用户集群的名称
  • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
  • USER_CLUSTER_KUBECONFIG:命令输出的用户集群 kubeconfig 文件的名称
kubectl get secret admin \
--kubeconfig ADMIN_CLUSTER_KUBECONFIG \
-n CLUSTER_NAME \
-o=jsonpath='{.data.admin\.conf}' | base64 -d > USER_CLUSTER_KUBECONFIG

该文件保存后,您可以开始使用 kubectl 访问用户集群,如以下示例所示:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

命令行

在开始执行此过程之前,请确保您已与管理员工作站建立 SSH 连接(如上所述)。以下所有命令均在管理员工作站上运行。

为用户集群指定静态 IP

如需指定您之前规划的用户集群节点的静态 IP 地址,请创建一个名为 user-cluster-ipblock.yamlIP 地址块文件。用户集群节点需要三个 IP 地址,升级期间还需要临时使用一个额外地址。以下是包含四个地址的 IP 地址块文件的示例:

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.20.1
    ips:
    - ip: 172.16.20.55
      hostname: user-vm-1
    - ip: 172.16.20.56
      hostname: user-vm-2
    - ip: 172.16.20.57
      hostname: user-vm-3
    - ip: 172.16.20.58
      hostname: user-vm-4

填写用户集群配置文件

gkeadm 创建管理员工作站时,它生成了一个名为 user-cluster.yaml 的配置文件。此配置文件用于创建用户集群。 部分字段已填写了默认值、生成的值或配置管理员工作站时提供的值(如 vCenter 详细信息),对于这个简单的安装,请勿更改这些值。

  1. 打开 user-cluster.yaml 进行修改。

  2. 使用您之前收集的信息,按如下所示填写其余字段。如果您不确定如何设置任何字段的格式,可以查看下面的完整示例配置文件,或查看用户集群配置文件参考文档。您可以在单独的标签页或窗口中打开页面,这样方便您在填写字段值时查看该页面。

字段或部分 说明
name 您为用户集群选择的名称
network.hostConfig.dnsServers 集群虚拟机可以使用的 DNS 服务器的 IP 地址。
network.hostConfig.ntpServers 集群虚拟机可以使用的时间服务器的 IP 地址。
network.ipMode.type 将此字段设置为 "static"
network.ipMode.ipBlockFilePath user-cluster-ipblock.yaml 的路径。
network.serviceCIDRnetwork.podCIDR 仅在您需要使用非默认范围时,才更改这些值(如避免重叠中所述)。
loadBalancer.vips.controlPlaneVIP 您为用户集群的 Kubernetes API 服务器选择的虚拟 IP 地址(VIP 地址)。
loadBalancer.vips.ingressVIP 您选择在负载均衡器上为入站流量代理配置的虚拟 IP 地址。
loadbalancer.kind 将此字段设置为 "MetalLB"
loadbalancer.metalLB.addressPools 为负载均衡器指定地址池 - 这些地址是您之前规划的 Service VIP 地址。为地址池和您选择的 addresses 提供 name。地址池必须包含入站流量代理 VIP 地址。
nodePools 使用为单个节点池提供的预填充值,指定您选择的 name。将节点池的 enableLoadBalancer 设置为 true。这是使用 MetalLB 所必需的,因为它在您的集群节点上运行。
antiAffinityGroups 将此字段设置为 "false"
gkeConnect.projectID 将此字段设置为您的 Google 项目的 ID。
gkeConnect.registerServiceAccountKeyPath 将此字段设置为连接注册服务帐号的 JSON 密钥。

用户集群配置文件示例

以下是填写好的用户集群配置文件的示例:

apiVersion: v1
kind: UserCluster
name: "my-user-cluster"
gkeOnPremVersion: "1.11.0-gke.543"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
  serviceCIDR: "10.96.0.0/20"
  podCIDR: "192.168.0.0/16"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.61"
    ingressVIP: "172.16.20.62"
  kind: "MetalLB"
  metalLB:
    addressPools:
    - name: "uc-address-pool"
      addresses:
      - "172.16.20.62-172.16.20.72"
nodePools:
- name: "uc-node-pool"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  enableLoadBalancer: true
antiAffinityGroups:
  enabled: false
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
autoRepair:
  enabled: true

验证配置并创建集群

  1. 验证用户集群配置文件是否有效且可用于创建集群:

    gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
    
  2. 创建用户集群:

    gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
    

    创建集群大约需要 30 分钟。

找到用户集群 kubeconfig 文件的位置

gkectl create cluster 命令会在当前目录中创建一个名为 USER_CLUSTER_NAME-kubeconfig 的 kubeconfig 文件。您稍后需要此 kubeconfig 文件才能与用户集群进行互动。

验证用户集群是否正在运行

验证用户集群是否正在运行:

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

USER_CLUSTER_KUBECONFIG 替换为您的 kubeconfig 文件的路径。

输出会显示用户集群节点。例如:

my-user-cluster-node-pool-69-d46d77885-7b7tx   Ready ...
my-user-cluster-node-pool-69-d46d77885-lsvzk   Ready ...
my-user-cluster-node-pool-69-d46d77885-sswjk   Ready ...

后续步骤

您现在已完成 Anthos Clusters on VMware 的此极简安装。(可选)您可以通过部署应用来查看安装过程的实际情况。