$ oc scale deployment/vsphere-problem-detector-operator --replicas=0 \
-n openshift-cluster-storage-operator
vSphere 问题检测器运算符检查部署在 vSphere 上的集群是否存在与存储相关的常见安装和错误配置问题。
该运算符在 `openshift-cluster-storage-operator` 命名空间中运行,并在集群存储运算符检测到集群部署在 vSphere 上时由集群存储运算符启动。vSphere 问题检测器运算符与 vSphere vCenter Server 通信,以确定集群中的虚拟机、默认数据存储以及有关 vSphere vCenter Server 配置的其他信息。该运算符使用 Cloud Credential Operator 的凭据连接到 vSphere。
运算符根据以下时间表运行检查
检查每小时运行一次。
如果任何检查失败,运算符将以 1 分钟、2 分钟、4 分钟、8 分钟等间隔再次运行检查。运算符会将间隔加倍,直到最大间隔为 8 小时。
当所有检查都通过时,时间表将返回到每小时间隔。
运算符在失败后会增加检查频率,以便在解决故障条件后运算符可以快速报告成功。您可以手动运行运算符以获取即时的故障排除信息。
您可以覆盖运行 vSphere 问题检测器运算符检查的时间表并立即运行检查。
vSphere 问题检测器运算符每小时自动运行检查。但是,当运算符启动时,它会立即运行检查。集群存储运算符在启动并确定集群在 vSphere 上运行时启动该运算符。要立即运行检查,您可以将 vSphere 问题检测器运算符缩放到 `0`,然后缩放到 `1`,以便它重新启动 vSphere 问题检测器运算符。
作为具有 `cluster-admin` 角色的用户访问集群。
将运算符缩放到 `0`
$ oc scale deployment/vsphere-problem-detector-operator --replicas=0 \
-n openshift-cluster-storage-operator
通过运行以下命令验证 Pod 是否已重新启动
$ oc -n openshift-cluster-storage-operator get pod -l name=vsphere-problem-detector-operator -w
NAME READY STATUS RESTARTS AGE
vsphere-problem-detector-operator-77486bd645-9ntpb 1/1 Running 0 11s
`AGE` 字段必须指示 Pod 已重新启动。
vSphere 问题检测器运算符运行并执行配置检查后,它会创建可以从命令行或 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 控制台查看事件,请导航到**主页**→**事件**,然后从**项目**菜单中选择 `openshift-cluster-storage-operator`。
vSphere 问题检测器运算符运行并执行配置检查后,它会创建可以从命令行或 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 控制台查看运算符日志,请执行以下步骤
导航到**工作负载**→**Pod**。
从**项目**菜单中选择 `openshift-cluster-storage-operator`。
单击 `vsphere-problem-detector-operator` Pod 的链接。
单击**Pod 详情**页面上的**日志**选项卡以查看日志。
下表标识 vSphere 问题检测器运算符运行的配置检查。某些检查会验证集群的配置。其他检查会验证集群中每个节点的配置。
名称 | 描述 |
---|---|
|
验证 vSphere 配置中的默认数据存储名称是否足够短,以便与动态配置一起使用。 如果此检查失败,您可以预期以下情况:
如果此检查失败,请使用较短的名称重新配置 vSphere 的默认数据存储。 |
|
验证列出默认数据存储中卷的权限。此权限是创建卷所必需的。操作员通过列出 如果此检查失败,请查看在 OpenShift Container Platform 安装期间指定的 vCenter 帐户所需的权限。 |
|
验证以下内容:
|
|
验证列出最近的任务和数据存储的权限。 |
|
从 vSphere vCenter 收集集群版本和 UUID。 |
名称 | 描述 |
---|---|
|
验证所有 vSphere 虚拟机是否都配置为 如果此检查失败,请参阅 如何在 vSphere 中检查虚拟机的“disk.EnableUUID”参数 Red Hat 知识库解决方案。 |
|
验证所有节点是否都配置了来自 vSphere vCenter 的
如果此检查失败,请参阅 vSphere 产品文档,了解有关为集群中的每个节点设置提供程序 ID 的信息。 |
|
报告运行节点的 ESXi 主机的版本。 |
|
报告节点的虚拟机硬件版本。 |
使用 vSphere 存储的持久卷的名称与数据存储名称和集群 ID 相关。
创建持久卷时,systemd
会为持久卷创建一个挂载单元。systemd
进程对用于持久卷的 VDMK 文件的完全限定路径长度有 255 个字符的限制。
完全限定路径基于 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 个字符。
vSphere 问题检测器操作员公开了以下指标,供 OpenShift Container Platform 监控堆栈使用。
名称 | 描述 |
---|---|
|
vSphere 问题检测器操作员执行的集群级检查的累积数量。此计数包括成功和失败。 |
|
vSphere 问题检测器操作员执行的失败集群级检查的数量。例如,值 |
|
具有特定版本的 ESXi 主机的数量。请注意,如果主机运行多个节点,则该主机仅计算一次。 |
|
vSphere 问题检测器操作员执行的节点级检查的累积数量。此计数包括成功和失败。 |
|
vSphere 问题检测器操作员执行的失败节点级检查的数量。例如,值 |
|
具有特定硬件版本的 vSphere 节点的数量。 |
|
关于 vSphere vCenter Server 的信息。 |