您正在查看 GKE On-Prem 以前版本的文档。查看最新文档

运行预检检查

本主题介绍如何针对 GKE On-Prem 配置文件运行预检。

概览

在安装过程中,您需要运行 gkectl create-config 来生成 GKE On-Prem 配置文件。配置文件驱动您的安装:您提供有关 vSphere 环境、网络和负载平衡器的信息,以及您想要的集群的外观。您可以在创建管理工作站之前或之后生成配置文件。对于某些要通过的检查,需要从管理员工作站运行检查。

您可以修改文件以满足您的环境和集群的需求后,然后使用该文件在本地环境中创建集群。

在创建集群之前,请运行 gkectl check-config 以通过多次预检检查配置文件。

预检检查模式和跳过验证

gkectl check-config 具有默认模式和快速模式:

  • 在默认模式下,该命令会全面验证每个字段。此外,默认模式会创建临时的 vSphere 虚拟机(VM)作为验证的一部分,这可能需要更多时间。
  • 在快速模式下,该命令会跳过创建测试虚拟机的检查,仅运行快速检查。您可以通过传递 --fast 标志启用快速模式。

您可以通过传递其他标志(请参阅 gkectl check-config --help 中的说明)跳过特定验证。

何时应进行预检检查?

最好在尝试创建集群之前及早运行预检检查。尽早运行预检检查有助于确认您是否已正确配置您的环境和网络。

如果您使用的是 GKE 本地版本 1.2.0-gke.6,请运行两次 gkectl check-config

  1. 运行 gkectl check-config --fast

  2. 运行 gkectl prepare

  3. 不带 --fast 标志,再次运行 gkectl check-config

运行两次的原因是:gkectl prepare 将集群节点操作系统映像的 VM 模板上传到您的 vSphere 环境。在运行完整的验证集之前,该虚拟机模板必须就位。

在 GKE 本地版本 1.2.1 及更高版本中,check-config命令本身会上传虚拟机模板,因此您可以运行完整的验证集,然后运行 gkectl prepare

  1. 不带 --fast 标志运行 gkectl check-config

  2. 运行 gkectl prepare

预检检查会验证您为文件提供的值。您无需填充配置文件中的每个字段即可对该文件运行预检检查;相反,您可以在填充文件的字段时对其进行迭代验证。例如,如果您只想验证 vCenter 配置,则只能填写 vcenter 字段并对其进行检查。

请记住,创建集群后,您的 GKE On-Prem 便无法再改变。通过运行预检检查,您可以在创建集群之前发现和解决配置中的问题。

保留测试虚拟机以进行调试

从 GKE 1.2.1 版开始,gkectl check-config 命令具有 --cleanup 标志。

gkectl check-config 履行完整的验证集时,它会创建一个测试虚拟机和一个关联的 SSH 密钥。如果您想保留测试 VM 和 SSH 密钥以进行调试,请将 --cleanup 设置为 false。

--cleanup 的默认值为 true。

预检检查列表

预检检查会验证配置文件中的每个字段。当前检查如下:

类别 说明
配置文件

通常验证每个字段和规范是否具有预期的格式和值。

已跳过 --skip-validation-config 标志。

使用 --skip-validation-proxy 标志跳过 proxy 字段验证。

互联网

验证所需网域的互联网访问权限。根据您运行 gkectl 的位置验证代理配置。

已使用 --skip-validation-internet 标志跳过。

Google Cloud
项目 ID
[*].projectid
验证为配置中的各个字段提供的项目 ID。如果缺少项目 ID,则跳过验证。
注册服务帐号
registerserviceaccountkeypath
验证服务帐号是否拥有所需的 Cloud IAM 角色。验证所需的 API 是否已启用。
连接服务帐号
agentserviceaccountkeypath
验证服务帐号是否拥有所需的 Cloud IAM 角色。验证所需的 API 是否已启用。
Google Cloud 的运维套件服务帐号
stackdriver.serviceaccountkeypath
验证服务帐号是否拥有所需的 Cloud IAM 角色。验证所需的 API 是否已启用。
已使用 --skip-validation-gcp 标志跳过。
访问 gcr.io/gke-on-prem-release 访问权限 验证对容器镜像仓库中托管的 GKE On-Prem 容器映像镜像仓库的访问权限。

已使用 --skip-validation-docker 标志跳过。

Docker 镜像仓库
privateregistryconfig
如果已配置,则忽略对 Docker 镜像仓库的访问。

已使用 --skip-validation-docker 标志跳过。

vCenter 检查所有 vcenter 字段是否存在,并检查以下内容:
凭据
vcenter.credentials.[*]
使用提供的用户凭据验证对 vCenter Server 的身份验证。
vSphere 版本 验证 vSphere 的版本是 6.5 还是 6.7 Update 3。
数据中心
vcenter.datacenter
验证系统是否已存在环境数据中心。
数据存储区
vcenter.datastore
验证系统 vSphere 数据存储区是否存在。
数据磁盘
vcenter.datadisk
验证系统中是否已存在 vSphere 虚拟机磁盘(VMDK)。
资源池
vcenter.resourcepool
验证 vSphere 资源池是否存在。
网络
vcenter.network
验证 vSphere 网络是否存在。

已使用 --skip-validation-infra 标志跳过。

负载平衡器

验证负载平衡配置:

  • 如果已集成负载平衡模式(lbmode: Integrated),请验证 adminclusterusercluster 规范中是否存在所有 bigip 字段。
  • 如果负载平衡模式为手动(lbmode: Manual),请验证 adminclusterusercluster 规范中是否存在所有manuallbspec字段。
集成式负载平衡
bigip.credentials.[*] 验证您的 F5 BIG-IP 凭据。
bigip.partition 验证提供的分区是否存在。
F5 BIG-IP 用户角色 验证所提供的 F5 BIG-IP 用户是否具有管理员或资源管理员角色。
bigip.vips.[*] 验证提供的 VIP。

已使用 --fast--skip-validation-load-balancer 标志跳过。

手动负载平衡
网络配置 验证 VIP,节点 IP 等。

已使用 --fast--skip-validation-load-balancer 标志跳过。

[*].manuallbspec.[*] 验证提供的节点端口。
已使用 --skip-validation-load-balancer 标志跳过。
网络

验证提供的 CIDR 范围、VIP 和静态 IP(如果已配置)是否可用。检查 IP 地址是否重叠。

已使用 --skip-validation-net-config 标志跳过。

DNS

验证提供的 DNS 服务器是否可用。

已使用 --skip-validation-dns 标志跳过。

NTP

验证提供的网络时间协议(NTP)服务器是否可用。

已使用 --skip-validation-tod 标志跳过。

VIP

Ping 所提供的 VIP。如果 ping 失败,此检查成功,则表示 VIP 尚未被占用。

已使用 --skip-validation-vips 标志跳过。

节点 IP

对提供的节点 IP 地址执行 ping 操作。如果 ping 失败,此检查成功,则表明节点 IP 尚未被占用。

已使用 --skip-validation-node-ips 标志跳过。

预检检查结果

预检检查可返回以下结果:

成功
该字段及其值通过了检查。
失败
该字段和/或其值未通过检查。如果检查返回 FAILURE 消息,请修正问题并再次验证文件。
已跳过

该检查已被跳过,可能是因为该检查与您的配置无关。例如,如果您使用的是 DHCP 服务器,则系统会跳过 DNS 检查和节点 IP 检查(仅与静态 IP 配置相关)。

如果您传递的标志会跳过验证,则跳过的检查不会返回 SIPIPED 结果;相反,验证不会运行,并且不会出现在命令输出中。

未知

跳过返回非零代码。您可以将 UNKNOWN 结果视为未通过检查。UNKNOWN 通常表示检查无法运行某些系统软件包,例如无法运行 nslookup 或无法运行 gcloud。

即将推出

未来版本中将添加以下预检检查:

  • NTP 服务器

运行预检检查

您可以通过运行以下命令来运行预检检查:

gkectl check-config --config [CONFIG]

其中 [CONFIG] 是 GKE On-Prem 配置文件的路径

在快速模式下运行

如果您愿意,可以在“快速模式”中运行预检检查,这样可以跳过创建临时测试虚拟机(例如负载平衡 VIP 和节点 IP 验证)的验证。为此,请传入 --fast

gkectl check-config --config [CONFIG] --fast

跳过特定验证

您可以通过传递标志来详细跳过 DNS、代理和网络等特定验证。每个跳过标志都以 --skip-[VALIDATION] 为前缀。

如需了解可用的跳过标志,请运行以下命令。您可以选择查看 gkectl 检查配置参考

gkectl check-config --help

例如,要跳过负载平衡器验证,请运行以下命令:

gkectl check-config --config my-config.yaml --skip-validation-load-balancer 

正在取消预检检查

如果您已开始运行预检检查又想要取消,请按两次 CTRL + C。如果预检检查创建了测试虚拟机,则取消操作也应自动清理虚拟机。

清理测试虚拟机

如果在预检检查完成后测试虚拟机仍然存在,您可以从 vCenter 中删除该虚拟机。测试虚拟机的名称如下所示:

check-config-[dhcp|static]-[random number]

如需删除虚拟机,请执行以下操作:

  1. 右键点击虚拟机,然后点击电源 > 关闭电源

  2. 关闭虚拟机后,再次右键点击虚拟机,然后点击从磁盘删除

示例

以下是该命令的行为示例。在此示例中,要验证的配置使用集成式负载平衡模式和静态 IP,但没有外部 Docker 镜像仓库:

gkectl check-config --config config.yaml
- Validation Category: Config Check
    - [SUCCESS] Config

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: GCP
    - [SUCCESS] GCP Service
    - [SUCCESS] GCP Service Account

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

- Validation Category: vCenter
    - [SUCCESS] Credentials
    - [SUCCESS] Version
    - [SUCCESS] Datacenter
    - [SUCCESS] Datastore
    - [SUCCESS] Data Disk
    - [SUCCESS] Resource Pool
    - [SUCCESS] Network

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster F5 (credentials, partition and user role)
    - [SUCCESS] User Cluster F5 (credentials, partition and user role)

- Validation Category: Network Configuration
    - [SUCCESS] CIDR, VIP and static IP (availability and overlapping)

- Validation Category: DNS
    - [SUCCESS] DNS (availability)

- Validation Category: VIPs
    - [SUCCESS] ping (availability)

- Validation Category: Node IPs
    - [SUCCESS] ping (availability)

Now running slow validation checks (creates test VM); use flag --fast to disable.
- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster VIP and NodeIP
    - [SUCCESS] User Cluster VIP and NodeIP

All validation results were SUCCESS.

已知问题

在 GKE On-Prem 1.2.0-gke.6 版中,如果您使用的是嵌套资源池或默认资源池,则当您尝试执行一整套验证时,gkectl check-config 会失败。不过,您可以通过传递 --fast 标志来执行一小组验证。

gkectl check-config --config [CONFIG] --fast

此问题将在 1.2.1 版中修复。

后续步骤