20.10. 使用 vSphere 问题检测器 Operator
20.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 Server 配置的其他信息。Operator 使用 Cloud Credential Operator 中的凭证连接到 vSphere。
Operator 根据以下调度运行检查:
- 检查每 8 小时运行一次。
- 如果检查失败,Operator 会以 1 分钟、2 分钟、4 分钟、8 分钟等间隔再次运行检查。Operator 间隔最多为 8 小时。
- 当所有检查都通过后,调度会返回到 8 小时间隔。
Operator 在失败后会增加检查的频率,以便 Operator 可以在修复失败条件后快速报告成功。您可以手动运行 Operator 来获取即时故障排除信息。
20.10.2. 运行 vSphere 问题检测器 Operator 检查
您可以覆盖运行 vSphere 问题检测器 Operator 检查的调度,并立即运行检查。
vSphere 问题检测器 Operator 每 8 小时自动运行检查。但是,当 Operator 启动时,它会立即运行检查。当 Cluster Storage Operator 启动并确定集群是否在 vSphere 上运行时,Operator 由 Cluster Storage Operator 启动。要立即运行检查,您可以将 vSphere 问题检测器 Operator 扩展至 0
,并返回到 1
,以便它重启 vSphere 问题检测器 Operator。
先决条件
-
使用具有
cluster-admin
角色的用户访问集群。
流程
将 Operator 扩展至
0
:$ oc scale deployment/vsphere-problem-detector-operator --replicas=0 \ -n openshift-cluster-storage-operator
如果部署没有立即缩减为零,您可以运行以下命令来等待 pod 退出:
$ oc wait pods -l name=vsphere-problem-detector-operator \ --for=delete --timeout=5m -n openshift-cluster-storage-operator
将 Operator 扩展至
1
:$ oc scale deployment/vsphere-problem-detector-operator --replicas=1 \ -n openshift-cluster-storage-operator
删除旧的领导锁定,以加快 Cluster Storage Operator 的新领导选举机制:
$ oc delete -n openshift-cluster-storage-operator \ cm vsphere-problem-detector-lock
验证
- 查看 vSphere 问题检测器 Operator 生成的事件或日志。确认事件或日志具有最新的时间戳。
20.10.3. 从 vSphere 问题检测器 Operator 中查看事件
在 vSphere 问题检测器 Operator 运行并执行配置检查后,它会创建可从命令行或 OpenShift Container Platform Web 控制台查看的事件。
流程
要使用命令行查看事件,请运行以下命令:
$ oc get event -n openshift-cluster-storage-operator \ --sort-by={.metadata.creationTimestamp}
输出示例
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
-
要使用 OpenShift Container Platform Web 控制台查看事件,请导航到 Home
Events,然后从 Project 菜单中选择 openshift-cluster-storage-operator
。
20.10.4. 从 vSphere 问题检测器 Operator 查看日志
在 vSphere 问题检测器 Operator 运行并执行配置检查后,它会创建日志记录,这些记录可以从命令行或 OpenShift Container Platform Web 控制台查看。
流程
要使用命令行查看日志,请运行以下命令:
$ oc logs deployment/vsphere-problem-detector-operator \ -n openshift-cluster-storage-operator
输出示例
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
要使用 OpenShift Container Platform Web 控制台查看 Operator 日志,请执行以下步骤:
-
导航到 Workloads
Pods。 -
从 Projects 菜单中选择
openshift-cluster-storage-operator
。 -
点
vsphere-problem-detector-operator
pod 的链接。 - 点击 Pod 详情 页面上的 Logs 选项卡查看日志。
-
导航到 Workloads
20.10.5. 由 vSphere 问题检测器 Operator 运行的配置检查
下表标识了配置检查是否运行 vSphere 问题检测程序 Operator。有些检查会验证集群的配置。其他检查验证集群中每个节点的配置。
名称 | 描述 |
---|---|
| 验证 vSphere 配置中的默认数据存储名称是否足够短,可用于动态置备。 如果这个检查失败,您可以预期如下情况:
如果这个检查失败,请重新配置 vSphere,其默认数据存储的名称较短。 |
|
验证列出默认数据存储中卷的权限。创建卷时需要此权限。Operator 通过列出 如果这个检查失败,请查看 OpenShift Container Platform 安装过程中指定的 vCenter 帐户所需的权限。 |
| 验证以下内容:
|
| 验证列出最新任务和数据存储的权限。 |
| 从 vSphere vCenter 收集集群版本和 UUID。 |
名称 | 描述 |
---|---|
|
验证所有 vSphere 虚拟机是否都配置了 如果这个检查失败,请参阅 如何在 vSphere Red Hat Knowledgebase 解决方案中检查虚拟机的 'disk.EnableUUID' 参数。 |
|
验证所有节点是否都配置了来自 vSphere vCenter 的 $ oc get nodes -o custom-columns=NAME:.metadata.name,PROVIDER_ID:.spec.providerID,UUID:.status.nodeInfo.systemUUID 如果这个检查失败,请参阅 vSphere 产品文档来获取集群中每个节点的供应商 ID 的信息。 |
| 报告运行节点的 ESXi 主机的版本。 |
| 报告节点的虚拟机硬件版本。 |
20.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
- 命名惯例需要 255 个字符限制的 205 个字符。
- 数据存储名称和集群 ID 由部署决定。
-
数据存储名称和集群 ID 替换为上述模式。然后,路径通过
systemd-escape
命令处理,以转义特殊字符。例如,连字符在转义后使用四个字符。转义的值为\x2d
。 -
在使用
systemd-escape
处理后,确保systemd
可以访问 VDMK 文件的完全限定路径后,路径的长度必须小于 255 个字符。
20.10.7. vSphere 问题检测器 Operator 的指标
vSphere 问题检测器 Operator 会公开以下指标,供 OpenShift Container Platform 监控堆栈使用。
名称 | 描述 |
---|---|
| 检查 vSphere 问题检测程序 Operator 是否执行的集群级别的累积数量。这一计数包括成功和失败。 |
|
检查 vSphere 问题检测程序 Operator 是否执行失败的集群级别数量。例如, |
| 具有特定版本的 ESXi 主机数量。请注意,如果主机运行多个节点,则该主机仅计算一次。 |
| 检查 vSphere 问题检测程序 Operator 是否执行的节点级别的累积数量。这一计数包括成功和失败。 |
|
是否执行 vSphere 问题检测程序 Operator 的失败节点级别检查数量。例如, |
| 具有特定硬件版本的 vSphere 节点数。 |
| 有关 vSphere vCenter 服务器的信息。 |