14.10. 使用 vSphere 问题检测器 Operator


14.10.1. 关于 vSphere 问题检测器 Operator

vSphere 问题检测器 Operator 会检查在 vSphere 上部署的集群,以获取与存储相关的常见安装和错误配置问题。

Operator 在 openshift-cluster-storage-operator 命名空间中运行,并在 Cluster Storage Operator 检测到集群部署到 vSphere 上时由 Cluster Storage Operator 启动。vSphere 问题检测器 Operator 与 vSphere vCenter 服务器通信,以确定集群中的虚拟机、默认数据存储以及 vSphere vCenter 服务器配置的其他信息。Operator 使用 Cloud Credential Operator 中的凭证连接到 vSphere。

Operator 根据以下调度运行检查:

  • 检查每 8 小时运行一次。
  • 如果检查失败,Operator 会以 1 分钟、2 分钟、4 分钟、8 分钟等间隔再次运行检查。Operator 间隔的最长时间为 8 小时。
  • 当所有检查都通过后,调度会返回到 8 小时间隔。

Operator 在失败后会增加检查的频率,以便 Operator 在修复失败条件后可以快速报告成功。您可以手动运行 Operator 来获取即时故障排除信息。

14.10.2. 运行 vSphere 问题检测器 Operator 检查

您可以覆盖运行 vSphere 问题检测器 Operator 检查的调度,并立即运行检查。

vSphere 问题检测器 Operator 每 8 小时自动运行检查。但是,当 Operator 启动时,它会立即运行检查。当 Cluster Storage Operator 启动并确定集群在 vSphere 上运行时,Operator 由 Cluster Storage Operator 启动。要立即运行检查,您可以将 vSphere Problem Detector Operator 缩至 0,然后再返回到 1,以便它重启 vSphere Problem Detector Operator。

先决条件

  • 使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 将 Operator 缩至 0:

    $ oc scale deployment/vsphere-problem-detector-operator --replicas=0 \
        -n openshift-cluster-storage-operator
    Copy to Clipboard Toggle word wrap

    如果部署没有立即缩减为零,您可以运行以下命令来等待 pod 退出:

    $ oc wait pods -l name=vsphere-problem-detector-operator \
        --for=delete --timeout=5m -n openshift-cluster-storage-operator
    Copy to Clipboard Toggle word wrap
  2. 将 Operator 扩展至 1

    $ oc scale deployment/vsphere-problem-detector-operator --replicas=1 \
        -n openshift-cluster-storage-operator
    Copy to Clipboard Toggle word wrap
  3. 删除旧的领导锁定,加快 Cluster Storage Operator 的新领导选举机制:

    $ oc delete -n openshift-cluster-storage-operator \
        cm vsphere-problem-detector-lock
    Copy to Clipboard Toggle word wrap

验证

  • 查看 vSphere 问题检测程序 Operator 生成的事件或日志。确认事件或日志具有最新的时间戳。

在 vSphere Problem Detector Operator 运行并执行配置检查后,它会创建可从命令行或 OpenShift Container Platform Web 控制台查看的事件。

流程

  • 要使用命令行查看事件,请运行以下命令:

    $ oc get event -n openshift-cluster-storage-operator \
        --sort-by={.metadata.creationTimestamp}
    Copy to Clipboard Toggle word wrap

    输出示例

    16m     Normal    Started             pod/vsphere-problem-detector-operator-xxxxx         Started container vsphere-problem-detector
    16m     Normal    Created             pod/vsphere-problem-detector-operator-xxxxx         Created container vsphere-problem-detector
    16m     Normal    LeaderElection      configmap/vsphere-problem-detector-lock    vsphere-problem-detector-operator-xxxxx became leader
    Copy to Clipboard Toggle word wrap

  • 要使用 OpenShift Container Platform Web 控制台查看事件,请导航至 Home Events,并从 Project 菜单中选择 openshift-cluster-storage-operator

在 vSphere Problem Detector Operator 运行并执行配置检查后,它会创建日志记录,这些记录可从命令行或 OpenShift Container Platform Web 控制台查看。

流程

  • 要使用命令行查看日志,请运行以下命令:

    $ oc logs deployment/vsphere-problem-detector-operator \
        -n openshift-cluster-storage-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    I0108 08:32:28.445696       1 operator.go:209] ClusterInfo passed
    I0108 08:32:28.451029       1 datastore.go:57] CheckStorageClasses checked 1 storage classes, 0 problems found
    I0108 08:32:28.451047       1 operator.go:209] CheckStorageClasses passed
    I0108 08:32:28.452160       1 operator.go:209] CheckDefaultDatastore passed
    I0108 08:32:28.480648       1 operator.go:271] CheckNodeDiskUUID:<host_name> passed
    I0108 08:32:28.480685       1 operator.go:271] CheckNodeProviderID:<host_name> passed
    Copy to Clipboard Toggle word wrap

  • 要使用 OpenShift Container Platform Web 控制台查看 Operator 日志,请执行以下步骤:

    1. 导航到 Workloads Pods
    2. Projects 菜单中选择 openshift-cluster-storage-operator
    3. vsphere-problem-detector-operator pod 的链接。
    4. Pod 详情 页面中的 Logs 选项卡查看日志。

下表标识了配置检查是否运行 vSphere Problem Detector Operator。有些检查会验证集群的配置。其他检查验证集群中每个节点的配置。

Expand
表 14.76. 集群配置检查
Name描述

CheckDefaultDatastore

验证 vSphere 配置中的默认数据存储名称是否足够短,可用于动态置备。

如果这个检查失败,您可以预期如下情况:

  • systemd 将错误记录到日志中,如 Failed to set up mount unit: Invalid argument
  • 如果在虚拟机没有从节点排空所有 pod 的情况下关闭或重新引导虚拟机,systemd 不会卸载卷。

如果检查失败,请重新配置 vSphere,使用较短名称用于默认数据存储。

CheckFolderPermissions

验证列出默认数据存储中卷的权限。创建卷时需要此权限。Operator 通过列出 //kubevols 目录来验证权限。根目录必须存在。可以接受在检查运行时不存在 /kubevols 目录的情况。如果不存在,当数据存储用于动态置备时 /kubevols 目录会被创建。

如果检查失败,请查看 OpenShift Container Platform 安装过程中指定的 vCenter 帐户所需的权限。

CheckStorageClasses

验证以下内容:

  • 这个存储类置备的每个持久性卷的完全限定路径小于 255 个字符。
  • 如果存储类使用存储策略,存储类必须只使用一个策略,且必须定义该策略。

CheckTaskPermissions

验证列出最新任务和数据存储的权限。

ClusterInfo

从 vSphere vCenter 收集集群版本和 UUID。

Expand
表 14.77. 节点配置检查
Name描述

CheckNodeDiskUUID

验证所有 vSphere 虚拟机是否已配置为 disk.enableUUID=TRUE

如果这个检查失败,请参阅如何在 vSphere Red Hat Knowledgebase 解决方案中检查 VM 的 'disk.EnableUUID' 参数

CheckNodeProviderID

验证所有节点是否都配置了来自 vSphere vCenter 的 ProviderID。当以下命令的输出不包括每个节点的供应商 ID 时,进行检查会失败。

$ oc get nodes -o custom-columns=NAME:.metadata.name,PROVIDER_ID:.spec.providerID,UUID:.status.nodeInfo.systemUUID
Copy to Clipboard Toggle word wrap

如果这个检查失败,请参阅 vSphere 产品文档来获取集群中每个节点的供应商 ID 的信息。

CollectNodeESXiVersion

报告运行节点的 ESXi 主机的版本。

CollectNodeHWVersion

报告节点的虚拟机硬件版本。

14.10.6. 关于存储类配置检查

使用 vSphere 存储的持久性卷的名称与数据存储名称和集群 ID 相关。

创建持久性卷时,systemd 为持久性卷创建一个挂载单元。systemd 进程有 255 个字符限制,用于持久性卷的 VDMK 文件的完全限定路径长度。

完全限定路径基于 systemd 和 vSphere 的命名约定。命名惯例使用以下模式:

/var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/[<datastore>] 00000000-0000-0000-0000-000000000000/<cluster_id>-dynamic-pvc-00000000-0000-0000-0000-000000000000.vmdk
Copy to Clipboard Toggle word wrap
  • 命名惯例需要 255 个字符限制的 205 个字符。
  • 数据存储名称和集群 ID 由部署决定。
  • 数据存储名称和集群 ID 替换为上述模式。然后,路径将会用 systemd-escape 命令处理来转义特殊字符。例如,连字符在转义后使用四个字符。转义的值为 \ x2d
  • 在使用 systemd-escape 进行处理后,确保 systemd 能够访问 VDMK 文件的完全限定路径后,路径的长度必须小于 255 个字符。

14.10.7. vSphere 问题检测器 Operator 的指标

vSphere 问题检测器 Operator 会公开以下指标,供 OpenShift Container Platform 监控堆栈使用。

Expand
表 14.78. vSphere 问题检测器 Operator 公开的指标
Name描述

vsphere_cluster_check_total

检查是否执行 vSphere 问题检测程序 Operator 的集群级别的累积数量。这个计数包括成功和失败。

vsphere_cluster_check_errors

检查 vSphere 问题检测程序 Operator 是否执行失败的集群级别的数量。例如,1 表示一个集群级别的检查失败。

vsphere_esxi_version_total

带有特定版本的 ESXi 主机数量。请注意,如果主机运行多个节点,则该主机仅计算一次。

vsphere_node_check_total

检查 vSphere 问题检测程序 Operator 是否执行的节点级别的累积数量。这个计数包括成功和失败。

vsphere_node_check_errors

vSphere Problem Detector Operator 执行的节点一级检查的失败数量。例如,1 表示一个节点级别的检查失败。

vsphere_node_hw_version_total

具有特定硬件版本的 vSphere 节点数。

vsphere_vcenter_info

有关 vSphere vCenter 服务器的信息。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat