Menu Close
Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
40.5. 基于 Ansible 的健康检查
通过用于安装和管理 OpenShift Container Platform 集群的基于 Ansible 的工具 提供了额外的诊断健康检查。它们可能会报告当前 OpenShift Container Platform 安装的常见部署问题。
这些检查可以使用 ansible-playbook
命令( 集群安装期间使用的方法)或 openshift-ansible 的 容器化版本 来运行。对于 ansible-playbook
方法,检查由 openshift-ansible RPM 软件包提供。对于容器化方法,openshift 3/ose-ansible 容器镜像通过 Red Hat Container Registry 发布。每种方法的示例用法在后续章节中提供。
以下健康检查是一组诊断任务,它们旨在使用提供的 health.yml playbook,针对已部署的 OpenShift Container Platform 集群的 Ansible 清单文件运行。
由于健康检查 playbook 可以对环境进行潜在的更改,您必须仅针对 Ansible 部署的集群运行 playbook,并使用用于部署的同一清单文件运行。更改包括安装依赖项,以便检查可以收集所需的信息。在某些情况下,如果 docker
或网络配置等系统组件的当前状态与清单文件中的配置不同,它们可能会改变。只有在您不希望清单文件对现有集群配置进行任何更改时,才应运行这些健康检查。
表 40.1. 诊断健康检查
检查名称 | 用途 |
---|---|
| 此检查测量 etcd 集群中 OpenShift Container Platform 镜像数据的总大小。如果计算的大小超过用户定义的限制,检查会失败。如果没有指定限制,则当镜像数据大小等于 etcd 集群中当前使用的空间的 50% 或以上时,这个检查会失败。 此检查失败表示 OpenShift Container Platform 镜像数据占用了 etcd 中的大量空间,这最终可能会导致 etcd 集群崩溃。
用户定义的限制可以通过传递 |
|
此检查检测到 etcd 主机上的较高流量。如果找到具有 etcd 同步持续时间警告的 有关提高 etcd 性能的更多信息,请参阅 OpenShift Container Platform etcd 主机的建议 实践和 红帽知识库。 |
|
此检查确保 etcd 集群的卷用量低于用户指定的最大阈值。如果未指定最大阈值,则默认为总卷大小的
用户定义的限制可通过传递 |
| 仅在依赖于 docker 守护进程(节点和容器化安装)的主机上运行。检查 docker 的总用量没有超过用户定义的限制。如果没有设置用户自定义的限制,则 docker 的最大用量阈值默认为可用总大小的 90%。
您可以使用清单文件中的变量来设置总百分比用量阈值,如 这也会检查 docker 的存储是否使用 受支持的配置。 |
|
这组检查会验证 Curator、Kibana、Elasticsearch 和 Fluentd Pod 是否已部署并 |
| 此检查检测到,在日志记录堆栈部署中 Elasticsearch 创建日志和日志聚合间隔大于正常时间延迟。如果在超时(默认为 30 秒)内无法通过 Elasticsearch 查询新日志条目,它将失败。仅当启用了日志记录时,检查才会运行。
用户定义的超时可以通过传递 |
| 此检查对 OpenShift Container Platform SDN 执行以下集群级别的诊断:
如果使用
当 |
有关在安装过程中一部分的类似检查,请参考 配置集群预安装检查。关于检查证书过期的信息,请参阅重新部署证书。
40.5.1. 通过 ansible-playbook 运行健康检查
要使用 ansible -playbook 命令运行 openshift- ansible
健康检查,请切换到 playbook 目录,指定集群的清单文件并运行 health.yml playbook:
$ cd /usr/share/ansible/openshift-ansible $ ansible-playbook -i <inventory_file> \ playbooks/openshift-checks/health.yml
要在命令行中设置变量,请以 key=value
格式将 -e
标志与任何所需的变量一起包含。例如:
$ cd /usr/share/ansible/openshift-ansible $ ansible-playbook -i <inventory_file> \ playbooks/openshift-checks/health.yml \ -e openshift_check_logging_index_timeout_seconds=45 \ -e etcd_max_image_data_size_bytes=40000000000
要禁用特定的检查,请在运行 playbook 前使用以逗号分隔的检查名称列表包含 openshift_disable_check
变量。例如:
openshift_disable_check=etcd_traffic,etcd_volume
另外,也可在运行 ansible-playbook
命令时使用 -e openshift_disable_check=<check1>,<check2>
将任何检查设置为作为变量禁用。