Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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 选项指定非标准位置。如果没有指定配置文件,则会跳过相关的诊断。

可用的诊断包括:

诊断名称用途

AggregatedLogging

检查聚合的日志记录集成是否正确配置和操作。

AnalyzeLogs

检查 systemd 服务日志中的问题。不需要对配置文件进行检查。

ClusterRegistry

检查集群是否有可构建和镜像流的工作容器镜像 registry。

ClusterRoleBindings

检查默认集群角色绑定是否存在,并根据基本策略包含预期的主题。

ClusterRoles

检查集群角色是否存在,并根据基本策略包含预期权限。

ClusterRouter

检查集群中是否正常工作的默认路由器。

ConfigContexts

检查客户端配置中的每个上下文已完成,并已连接到其 API 服务器。

DiagnosticPod

创建一个从应用程序角度运行诊断的 pod,它检查 pod 中的 DNS 是否正常工作,以及默认服务帐户的凭证是否正确向 master API 进行身份验证。

EtcdWriteVolume

在一段时间内检查对 etcd 进行写入的卷,并通过操作和密钥对它们进行分类。这个诊断只在特殊请求时运行,因为它不会因为其他诊断而快速运行,并可增加 etcd 的负载。

MasterConfigCheck

检查此主机的主配置文件是否有问题。

MasterNode

检查此主机上运行的主服务器也正在运行,以验证其是否为集群 SDN 的成员。

MetricsApiProxy

检查可以通过集群 API 代理访问集成的 Heapster 指标。

NetworkCheck

在多个节点中创建诊断 pod,从应用程序或 pod 的角度诊断常见的网络问题。当 master 可以在节点上调度 pod 时运行此诊断,但 pod 有连接问题。此检查确认 pod 可以连接到服务、其他 pod 和外部网络。

如果有错误,这个诊断将结果保存并检索到本地目录(默认为/tmp/openshift/ )中以便进一步分析。可以使用 --network-logdir 标志指定该目录。

NodeConfigCheck

检查此主机的节点配置文件是否存在问题。

NodeDefinitions

检查 master API 中定义的节点是否已就绪,并可调度 pod。

RouteCertificateValidation

检查通过扩展验证可能会被拒绝的那些路由证书的所有路由证书。

ServiceExternalIPs

检查指定外部 IP 的现有服务,这些服务会被禁止使用 master 配置。

UnitStatus

对于与 OpenShift Container Platform 相关的此主机上的单元,检查 systemd 状态。不需要对配置文件进行检查。