40.2. 使用 Diagnostics 工具
您可以通过几种方式部署 OpenShift Container Platform。它们是:
- 从源构建
- 包含在虚拟机镜像中
- 作为容器镜像
- 使用企业 RPM
每种方法适合不同的配置和环境。为尽量减少环境假设,可将诊断工具包含在 openshift
二进制文件中,以在 OpenShift Container Platform 服务器或客户端中提供诊断功能。
要使用诊断工具,最好是在 master 主机和集群管理员上,请运行:
# oc adm diagnostics
它会运行所有可用的诊断,并跳过所有不适用于环境的诊断。
您可以按名称运行特定诊断,或按照名称运行特定的诊断功能来解决问题。例如:
$ oc adm diagnostics
诊断工具的选项需要正常工作的配置文件。例如,除非节点配置可用,否则 NodeConfigCheck 不会运行。
诊断工具默认使用标准配置文件位置:
Client:
-
如
$KUBECONFIG
环境变量所示 - ~/.kube/config file
-
如
Master:
- /etc/origin/master/master-config.yaml
节点:
- /etc/origin/node/node-config.yaml
您可以使用 --config
、--master-config
和 --node-config
选项指定非标准位置。如果没有指定配置文件,则会跳过相关的诊断。
可用的诊断包括:
诊断名称 | 用途 |
---|---|
| 检查聚合的日志记录集成是否正确配置和操作。 |
| 检查 systemd 服务日志中的问题。不需要对配置文件进行检查。 |
| 检查集群是否有可构建和镜像流的工作容器镜像 registry。 |
| 检查默认集群角色绑定是否存在,并根据基本策略包含预期的主题。 |
| 检查集群角色是否存在,并根据基本策略包含预期权限。 |
| 检查集群中是否正常工作的默认路由器。 |
| 检查客户端配置中的每个上下文已完成,并已连接到其 API 服务器。 |
| 创建一个从应用程序角度运行诊断的 pod,它检查 pod 中的 DNS 是否正常工作,以及默认服务帐户的凭证是否正确向 master API 进行身份验证。 |
| 在一段时间内检查对 etcd 进行写入的卷,并通过操作和密钥对它们进行分类。这个诊断只在特殊请求时运行,因为它不会因为其他诊断而快速运行,并可增加 etcd 的负载。 |
| 检查此主机的主配置文件是否有问题。 |
| 检查此主机上运行的主服务器也正在运行,以验证其是否为集群 SDN 的成员。 |
| 检查可以通过集群 API 代理访问集成的 Heapster 指标。 |
| 在多个节点中创建诊断 pod,从应用程序或 pod 的角度诊断常见的网络问题。当 master 可以在节点上调度 pod 时运行此诊断,但 pod 有连接问题。此检查确认 pod 可以连接到服务、其他 pod 和外部网络。
如果有错误,这个诊断将结果保存并检索到本地目录(默认为/tmp/openshift/ )中以便进一步分析。可以使用 |
| 检查此主机的节点配置文件是否存在问题。 |
| 检查 master API 中定义的节点是否已就绪,并可调度 pod。 |
| 检查通过扩展验证可能会被拒绝的那些路由证书的所有路由证书。 |
| 检查指定外部 IP 的现有服务,这些服务会被禁止使用 master 配置。 |
| 对于与 OpenShift Container Platform 相关的此主机上的单元,检查 systemd 状态。不需要对配置文件进行检查。 |