本主题介绍如何针对 GKE On-Prem 配置文件运行预检。
概览
在安装过程中,您需要运行 gkectl create-config
来生成 GKE On-Prem 配置文件。配置文件驱动您的安装:您提供有关 vSphere 环境、网络和负载平衡器的信息,以及集群的预期情况。您可以在创建管理员工作站之前或之后生成配置文件。对于某些要通过的检查,需要从管理员工作站运行检查。
您修改文件以满足环境和集群的需求后,可以使用该文件在本地环境中创建集群。
在创建集群之前,请运行 gkectl check-config
以通过多次预检检查配置文件。
预检检查模式和跳过验证
gkectl check-config
具有默认模式和快速模式:
- 在默认模式下,该命令会全面验证每个字段。此外,默认模式会创建临时的 vSphere 虚拟机作为验证的一部分,这可能需要更多时间。
- 在快速模式下,该命令会跳过创建测试虚拟机的检查,仅运行快速检查。您可以通过传递
--fast
标志启用快速模式。
您可以通过传递其他标志(请参阅 gkectl check-config --help
中的说明)跳过特定验证。
何时应进行预检检查?
最好在尝试创建集群之前及早运行预检检查。尽早运行预检检查有助于确认您是否已正确配置您的环境和网络。
如果您使用的是 GKE On-Prem 1.2.0-gke.6 版,请运行 gkectl check-config
两次:
运行
gkectl check-config --fast
。运行
gkectl prepare
。不带
--fast
标志,再次运行gkectl check-config
。
运行两次的原因是:gkectl prepare
将集群节点操作系统映像的虚拟机模板上传到您的 vSphere 环境。在运行完整的验证集之前,该虚拟机模板必须就位。
在 GKE On-Prem 1.2.1 版及更高版本中,check-config
命令本身会上传虚拟机模板,因此您可以运行完整的验证集,然后运行 gkectl prepare
:
不带
--fast
标志运行gkectl check-config
。运行
gkectl prepare
。
预检检查会验证您为文件提供的值。您无需填充配置文件中的每个字段即可对该文件运行预检检查;相反,您可以在填充文件的字段时对其进行迭代验证。例如,如果您只想验证 vCenter 配置,则只能填写 vcenter
字段并对其进行检查。
请记住,创建集群后,您的 GKE On-Prem 便无法再改变。通过运行预检检查,您可以在创建集群之前发现和解决配置中的问题。
保留测试虚拟机以进行调试
从 GKE 1.2.1 版开始,gkectl check-config
命令具有 --cleanup
标志。
当 gkectl check-config
执行完整的验证集时,它会创建一个测试虚拟机和一个关联的 SSH 密钥。如果您想保留测试虚拟机和 SSH 密钥以进行调试,请将 --cleanup
设置为 false。
--cleanup
的默认值为 true。
预检检查列表
预检检查会验证配置文件中的每个字段。当前检查如下:
类别 | 说明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
配置文件 | 通常验证每个字段和规范是否具有预期的格式和值。 使用 使用 | ||||||||||||||||
互联网 | 验证所需网域的互联网访问权限。根据您运行 gkectl 的位置验证代理配置。 使用 |
||||||||||||||||
Google Cloud |
--skip-validation-gcp 标志可跳过。 | ||||||||||||||||
对 gcr.io/gke-on-prem-release 的访问权限 |
验证对 Container Registry 中托管的 GKE On-Prem 容器映像注册表的访问权限。 使用 |
||||||||||||||||
Docker 注册表 |
privateregistryconfig 如果已配置,则验证对 Docker 注册表的访问权限。 使用 |
||||||||||||||||
vCenter | 检查所有 vcenter 字段是否存在,并检查以下内容:
使用 |
||||||||||||||||
负载平衡器 | 验证负载平衡配置:
--skip-validation-load-balancer 标志跳过。
|
||||||||||||||||
网络 | 验证提供的 CIDR 范围、VIP 地址和静态 IP 地址(如果已配置)是否可用。检查 IP 地址是否不重叠。 使用 |
||||||||||||||||
DNS | 验证提供的 DNS 服务器是否可用。 使用 |
||||||||||||||||
NTP | 验证提供的网络时间协议 (NTP) 服务器是否可用。 使用 |
||||||||||||||||
VIP 地址 | 对提供的 VIP 地址执行 ping 操作。如果 ping 失败,则此检查成功,它表示 VIP 地址尚未被占用。 使用 |
||||||||||||||||
节点 IP 地址 | 对提供的节点 IP 地址执行 ping 操作。如果 ping 失败,则此检查成功,它表示节点 IP 地址尚未被占用。 使用 |
预检检查结果
预检检查可返回以下结果:
- SUCCESS
- 该字段及其值通过了检查。
- FAILURE
- 该字段和/或其值未通过检查。如果检查返回
FAILURE
消息,请修复问题并再次验证文件。 - SKIPPED
该检查已被跳过,可能是因为该检查与您的配置无关。例如,如果您使用的是 DHCP 服务器,则系统会跳过 DNS 检查和节点 IP 地址检查(仅与静态 IP 地址配置相关)。
如果您传递的标志会跳过验证,则跳过的检查不会返回 SKIPPED 结果;相反,验证不会运行,并且不会出现在命令输出中。
- UNKNOWN
跳过返回非零代码。您可以将 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 check-config 参考文档:
gkectl check-config --help
例如,要跳过负载平衡器验证,请运行以下命令:
gkectl check-config --config my-config.yaml --skip-validation-load-balancer
取消预检检查
如果您已开始运行预检检查又想要取消,请按两次 Ctrl+C。如果预检检查创建了测试虚拟机,则取消操作也应自动清理虚拟机。
清理测试虚拟机
如果在预检检查完成后测试虚拟机仍然存在,您可以从 vCenter 中删除该虚拟机。测试虚拟机的名称如下所示:
check-config-[dhcp|static]-[random number]
如需删除虚拟机,请执行以下操作:
右键点击虚拟机,然后点击电源 > 关闭电源
关停虚拟机后,再次右键点击虚拟机,然后点击从磁盘删除。
示例
以下是该命令的行为示例。在此示例中,要验证的配置使用集成式负载平衡模式和静态 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 版中得到解决。