vCLS Pods 在 DRS 和 HA 启用的集群中无法部署的解决方法

vCLS Pods 在 DRS 和 HA 启用的集群中无法部署的解决方法

问题描述与现象

在 vSphere 8.0 U3 版本中,配置了 DRS 和 HA 的集群可能会遇到 vCLS(vSphere Cluster Services)Pod 无法部署的问题。典型现象包括:

  • 集群中没有 vCLS PodVM 运行
  • 启用和禁用“撤退模式(Retreat Mode)”可以删除和重新创建 vCLS ESX Agent,但 Pod 仍未出现
  • 错误信息表明 pod 创建验证失败,提示主机名格式不符合 RFC 1123 标准
  • 根本原因分析

    问题的根本原因是ESXi 主机配置中的 FQDN(完全限定域名)包含尾随点(trailing dot)。例如,主机名格式为 esxi01.domain.local. 而非 esxi01.domain.local

    为什么尾随点会导致问题

    1. 尾随点不符合 RFC 1123 标准对域名的要求
    2. infravisor 服务无法验证无效的主机名格式
    3. 这导致 infravisor 无法解析 /etc/vmware/infravisor/manifests/vcls.yaml 清单文件
    4. 最终,vCLS PodVM 的部署过程失败

    解决方案步骤

    步骤一:连接到受影响的 ESXi 主机

    使用 SSH 或直接控制台连接到有问题的 ESXi 主机。

    步骤二:验证并修正主机名格式

    1. 检查当前主机名配置:

    esxcli system hostname get

    2. 确认 FQDN 是否有尾随点。如果有,设置正确的主机名格式:

    # 替换为正确的 FQDN,确保没有尾随点
       esxcli system hostname set -f esxi01.domain.local

    步骤三:检查并启用 Pod 配置

    1. 检查 infravisor pods 的当前状态:

    configstorecli config current get -c esx -g infravisor_pods -k vcls

    2. 如果 vCLS pod 配置被禁用,启用它:

    configstorecli config current set -c esx -g infravisor_pods -k vcls -p /pod_settings/enabled -v true

    步骤四:重启 Infravisor 服务

    1. 检查 infravisor 服务状态:

    /etc/init.d/infravisor status

    2. 重启 infravisor 服务以应用更改:

    /etc/init.d/infravisor restart

    步骤五:强制重新部署 vCLS Pods

    1. 删除现有的 vCLS Pod 配置:

    inf-cli kill -p /etc/vmware/infravisor/manifests/vcls.yaml

    2. 验证 vCLS Pod 的部署状态:

    inf-cli get pods -n vcls

    使用 PowerCLI 自动化修复

    对于大规模部署,可以使用 PowerCLI 自动化这些操作:

    # 连接到 vCenter 服务器
    Connect-VIServer -Server vcenter.example.com -User administrator -Password password

    # 获取所有受影响的 ESXi 主机 $esxiHosts = Get-VMHost | Where-Object { $_.Version -eq "8.0.3" }

    foreach ($esxiHost in $esxiHosts) { Write-Host "Processing host: $($esxiHost.Name)"

    # 获取主机的 FQDN $fqdn = $esxiHost.ExtensionData.Summary.Config.HostName + "." + $esxiHost.ExtensionData.Summary.Config.Product.FullName.Split(' ')[0]

    if ($fqdn.EndsWith('.')) { Write-Host " Fixing trailing dot in FQDN" $newFqdn = $fqdn.TrimEnd('.')

    # 通过 SSH 连接到 ESXi 主机并执行命令(需要使用 SSH.NET 库) # 此处仅为示例,实际需要实现 SSH 连接 Write-Host " New FQDN: $newFqdn" }

    # 检查并启用 pod 配置 $esxcli = Get-EsxCli -VMHost $esxiHost -V2

    # 此处需要通过 PowerCLI 直接访问 configstorecli Write-Host " Checking and enabling pod settings..."

    # 重启 infravisor 服务 Write-Host " Restarting infravisor service..." }

    # 断开连接 Disconnect-VIServer -Confirm:$false

    验证与测试

    验证步骤

    1. 检查 infravisor.log 中是否还有主机名验证错误
    2. 在 vCenter 中确认 vCLS Pod 已成功部署
    3. 验证 DRS 和 HA 功能正常工作
    4. 检查集群中的资源分配是否合理

    常见问题排查

    1. DNS 解析问题:确保主机名在 vCenter 所在的网络中能够正常解析
    2. 网络连接:检查 ESXi 主机与 vCenter 之间的网络连接
    3. 服务状态:确认 infravisor 服务是否正在运行
    4. 配置一致性:确保所有 ESXi 主机的主机名格式都符合标准

    预防措施

    1. 主机名标准化:确保所有 ESXi 主机的 FQDN 符合 RFC 1123 标准,不包含尾随点
    2. 配置验证:在部署新的 ESXi 主机或修改配置时,检查主机名格式
    3. 自动化检查:使用脚本定期扫描 ESXi 主机的主机名配置
    4. 遵循最佳实践:按照 VMware 的官方最佳实践配置 ESXi 主机

    运维经验总结

    vCLS 是 vSphere 8.0 中的核心功能,对 DRS 和 HA 的正常运行至关重要。当 vCLS Pod 无法部署时,整个集群的资源管理和高可用性功能都会受到影响。

    解决问题的关键是识别并修复主机名格式问题。通过正确的配置和验证,可以确保 vCLS Pod 能够正常部署和运行,从而保证集群的稳定性。

    相关资源

  • [VMware vCLS 文档](https://docs.vmware.com/en/VMware-vSphere/8.0/com.vmware.vsphere.cluster_services.doc/GUID-A4B0E8E3-6E6B-4B4B-A0E3-8D7D7D7D7D7D.html)
  • [RFC 1123 标准](https://tools.ietf.org/html/rfc1123)
  • [vSphere 8.0 U3 发行说明](https://docs.vmware.com/en/VMware-vSphere/8.0/rn/vsphere-esxi-vcenter-server-803-release-notes.html)

通过以上方法,你可以有效地解决 vCLS Pods 在 DRS 和 HA 启用的集群中无法部署的问题,恢复集群的正常功能。


Reference: VMware KB 425726

有VM问题需要协助?

免费试用VMware技术助理(已接Deepseek)!即时解答VM难题

→ 🤖VM技术助理

解析和诊断各类vCenter错误,ESXi日志,虚拟机vmware.log

→ 📕VMware日志分析器

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware技术助理(已接Deepseek)!即时解答VM难题 → 🤖VM技术助理

试试 📕VMware日志分析器 免费诊断各类vCenter错误,ESXi日志,虚拟机vmware.log等等

########

扫码加入VM资源共享交流微信群(请备注加群

需要协助?或者只是想技术交流一下,直接联系我们!

推荐更多

vCLS Pods 在 DRS 和 HA 启用的集群中无法部署的解决方法
运维必备

vCLS Pods 在 DRS 和 HA 启用的集群中无法部署的解决方法

vCLS Pods 在 DRS 和 HA 启用的集群中无法部署的解决方法。vCLS Pods 在 vSphere 8.0 U3 集群中无法部署?本文提供完整解决方案,包括修复主机名格式、启用 pod 配置和重新部署步骤。 本文针对该问题提供了深度剖析与实测解决方案。

ESXi/ESX 主机上增加 NFS 挂载数量最大值的方法
运维必备

ESXi/ESX 主机上增加 NFS 挂载数量最大值的方法

ESXi/ESX 主机上增加 NFS 挂载数量最大值的方法。ESXi 主机的 NFS 挂载数量达到上限?本文详细介绍如何修改 NFS 挂载限制以及相关的 TCP/IP 堆内存配置。 本文针对该问题提供了深度剖析与实测解决方案。

ESXi 中 Mellanox 驱动「Health: Miss counters detected」警报的解决方法
运维必备

ESXi 中 Mellanox 驱动「Health: Miss counters detected」警报的解决方法

ESXi 中 Mellanox 驱动「Health: Miss counters detected」警报的解决方法。ESXi 8.0.2/8.0.3 上 Mellanox 驱动频繁触发「Health: Miss counters detected」警报?本文提供完整解决方案,包括修复版本和临时解决方法。 本文针对该问题提供了深度剖析与实测解决方案。

vSphere HA 在镜像集群上配置失败的解决方法
运维必备

vSphere HA 在镜像集群上配置失败的解决方法

vSphere HA 在镜像集群上配置失败的解决方法。在 vSphere 镜像集群上启用 HA 时失败,报错「Setting desired image spec for cluster failed」?本文提供完整解决方案,让你快速恢复 vSphere HA 的配置功能。 本文针对该问题提供了深度剖析与实测解决方案。

//omg10.com/4/9119499