第 24 章 验证和故障排除
24.1. 验证安装
您可以按照本文档中的步骤在安装后检查 OpenShift Container Platform 集群的状态。
24.1.1. 查看安装日志
您可以在 OpenShift Container Platform 安装日志中查看安装概述。如果安装成功,日志中包括访问集群所需的信息。
先决条件
- 有访问安装主机的访问权限。
流程
查看安装主机上安装目录中的
.openshift_install.log
日志文件:$ cat <install_dir>/.openshift_install.log
输出示例
如果安装成功,日志末尾会包括集群凭证,如下例所示:
... time="2020-12-03T09:50:47Z" level=info msg="Install complete!" time="2020-12-03T09:50:47Z" level=info msg="To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig'" time="2020-12-03T09:50:47Z" level=info msg="Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com" time="2020-12-03T09:50:47Z" level=info msg="Login to the console with user: \"kubeadmin\", and password: \"password\"" time="2020-12-03T09:50:47Z" level=debug msg="Time elapsed per stage:" time="2020-12-03T09:50:47Z" level=debug msg=" Infrastructure: 6m45s" time="2020-12-03T09:50:47Z" level=debug msg="Bootstrap Complete: 11m30s" time="2020-12-03T09:50:47Z" level=debug msg=" Bootstrap Destroy: 1m5s" time="2020-12-03T09:50:47Z" level=debug msg=" Cluster Operators: 17m31s" time="2020-12-03T09:50:47Z" level=info msg="Time elapsed: 37m26s"
24.1.2. 查看镜像拉取源
对于没有网络连接的集群,您可以使用节点上的命令来查看拉取的镜像源,如 crictl 镜像
。
但是,对于断开连接的安装,若要查看拉取镜像的来源,您必须查看 CRI-O 日志以查找 Trying 以访问
日志条目,如下所示。查看镜像拉取源的其他方法,如 crictl images
命令,显示非镜像镜像的镜像名称,即使镜像是从镜像位置拉取的。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
查看 master 或 worker 节点的 CRI-O 日志:
$ oc adm node-logs <node_name> -u crio
输出示例
用于访问日志条目的 Trying
指示镜像要从中拉取的位置。... Mar 17 02:52:50 ip-10-0-138-140.ec2.internal crio[1366]: time="2021-08-05 10:33:21.594930907Z" level=info msg="Pulling image: quay.io/openshift-release-dev/ocp-release:4.10.0-ppc64le" id=abcd713b-d0e1-4844-ac1c-474c5b60c07c name=/runtime.v1alpha2.ImageService/PullImage Mar 17 02:52:50 ip-10-0-138-140.ec2.internal crio[1484]: time="2021-03-17 02:52:50.194341109Z" level=info msg="Trying to access \"li0317gcp1.mirror-registry.qe.gcp.devcluster.openshift.com:5000/ocp/release@sha256:1926eae7cacb9c00f142ec98b00628970e974284b6ddaf9a6a086cb9af7a6c31\"" Mar 17 02:52:50 ip-10-0-138-140.ec2.internal crio[1484]: time="2021-03-17 02:52:50.226788351Z" level=info msg="Trying to access \"li0317gcp1.mirror-registry.qe.gcp.devcluster.openshift.com:5000/ocp/release@sha256:1926eae7cacb9c00f142ec98b00628970e974284b6ddaf9a6a086cb9af7a6c31\"" ...
日志可能会显示镜像拉取源两次,如上例中所示。
如果您的
ImageContentSourcePolicy
对象列出了多个镜像,OpenShift Container Platform 会尝试按照配置中列出的顺序拉取镜像,例如:Trying to access \"li0317gcp1.mirror-registry.qe.gcp.devcluster.openshift.com:5000/ocp/release@sha256:1926eae7cacb9c00f142ec98b00628970e974284b6ddaf9a6a086cb9af7a6c31\" Trying to access \"li0317gcp2.mirror-registry.qe.gcp.devcluster.openshift.com:5000/ocp/release@sha256:1926eae7cacb9c00f142ec98b00628970e974284b6ddaf9a6a086cb9af7a6c31\"
24.1.3. 获取集群版本、状态和更新详情
您可以通过运行 oc get clusterversion
命令来查看集群版本和状态。如果状态显示安装仍在进行,您可以查看 Operator 的状态以了解更多信息。
您还可以列出当前的更新频道并查看可用的集群更新。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
获取集群版本和总体状态:
$ oc get clusterversion
输出示例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.6.4 True False 6m25s Cluster version is 4.6.4
示例输出显示集群已被成功安装。
如果集群状态表示安装仍在进行,您可以通过检查 Operator 状态来获取更详细的进度信息:
$ oc get clusteroperators.config.openshift.io
查看集群规格、更新可用性和更新历史记录的详细概述:
$ oc describe clusterversion
列出当前的更新频道:
$ oc get clusterversion -o jsonpath='{.items[0].spec}{"\n"}'
输出示例
{"channel":"stable-4.6","clusterID":"245539c1-72a3-41aa-9cec-72ed8cf25c5c"}
查看可用的集群更新:
$ oc adm upgrade
输出示例
Cluster version is 4.6.4 Updates: VERSION IMAGE 4.6.6 quay.io/openshift-release-dev/ocp-release@sha256:c7e8f18e8116356701bd23ae3a23fb9892dd5ea66c8300662ef30563d7104f39
其他资源
- 如需有关 查询 Operator 状态的更多信息,请参阅在安装后 查询 Operator 状态。
- 有关调查 Operator 问题的信息,请参阅对 Operator 进行故障排除。
- 有关更新集群的更多信息,请参阅使用 Web 控制台更新集群。
- 有关更新频道的概述,请参阅了解更新频道和发行版本。
24.1.4. 验证集群是否使用短期凭证
您可以通过检查集群中的 Cloud Credential Operator (CCO) 配置和其他值来验证集群是否对各个组件使用简短安全凭证。
先决条件
-
已使用 Cloud Credential Operator 实用程序(
ccoctl
)部署了 OpenShift Container Platform 集群来实现短期凭证。 -
已安装 OpenShift CLI(
oc
)。 -
您以具有
cluster-admin
权限的用户身份登录。
流程
运行以下命令,验证 CCO 是否配置为以手动模式运行:
$ oc get cloudcredentials cluster \ -o=jsonpath={.spec.credentialsMode}
以下输出确认 CCO 以手动模式运行:
输出示例
Manual
运行以下命令,验证集群没有
root
凭证:$ oc get secrets \ -n kube-system <secret_name>
其中
<secret_name>
是云供应商的 root secret 的名称。平台 Secret 名称 Amazon Web Services (AWS)
aws-creds
Microsoft Azure
azure-credentials
Google Cloud Platform (GCP)
gcp-credentials
一个错误确认集群中不存在 root secret。
AWS 集群的输出示例
Error from server (NotFound): secrets "aws-creds" not found
运行以下命令,验证组件是否在单个组件中使用短期安全凭证:
$ oc get authentication cluster \ -o jsonpath \ --template='{ .spec.serviceAccountIssuer }'
此命令显示集群
Authentication
对象中.spec.serviceAccountIssuer
参数的值。与云供应商关联的 URL 的输出表示集群使用从集群外部创建和管理的简短凭证的手动模式。Azure 集群:通过运行以下命令,验证组件假定 secret 清单中指定的 Azure 客户端 ID:
$ oc get secrets \ -n openshift-image-registry installer-cloud-credentials \ -o jsonpath='{.data}'
输出中包含了
azure_client_id
和azure_federated_token_file
字段代表组件假定 Azure 客户端 ID。Azure 集群 :运行以下命令来验证 pod 身份 Webhook 是否正在运行:
$ oc get pods \ -n openshift-cloud-credential-operator
输出示例
NAME READY STATUS RESTARTS AGE cloud-credential-operator-59cf744f78-r8pbq 2/2 Running 2 71m pod-identity-webhook-548f977b4c-859lz 1/1 Running 1 70m
24.1.5. 使用 CLI 查询集群节点状态
您可以在安装后验证集群节点的状态。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
列出集群节点的状态。验证输出是否列出所有预期的 control plane 和计算节点,以及每个节点的状态是否为
Ready
:$ oc get nodes
输出示例
NAME STATUS ROLES AGE VERSION compute-1.example.com Ready worker 33m v1.29.4 control-plane-1.example.com Ready master 41m v1.29.4 control-plane-2.example.com Ready master 45m v1.29.4 compute-2.example.com Ready worker 38m v1.29.4 compute-3.example.com Ready worker 33m v1.29.4 control-plane-3.example.com Ready master 41m v1.29.4
查看每个集群节点的 CPU 和内存资源的可用性:
$ oc adm top nodes
输出示例
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% compute-1.example.com 128m 8% 1132Mi 16% control-plane-1.example.com 801m 22% 3471Mi 23% control-plane-2.example.com 1718m 49% 6085Mi 40% compute-2.example.com 935m 62% 5178Mi 75% compute-3.example.com 111m 7% 1131Mi 16% control-plane-3.example.com 942m 26% 4100Mi 27%
其他资源
- 有关查看 节点健康状况和调查节点问题的更多详细信息,请参阅验证 节点健康状况。
24.1.6. 从 OpenShift Container Platform Web 控制台查看集群状态
您可以在 OpenShift Container Platform Web 控制台中的 Overview 页面中查看以下信息:
- 集群的一般状态
- control plane、集群 Operator 和存储的状态
- CPU、内存、文件系统、网络传输和 pod 可用性
- 集群的 API 地址、集群 ID 和供应商名称
- 集群版本信息
- 集群更新状态,包括当前更新频道和可用更新的详情
- 详细节点、pod、存储类和持久性卷声明(PVC)信息的集群清单
- 持续集群活动和最近事件列表
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
-
在 Administrator 视角中,导航到 Home
Overview。
24.1.7. 查看 Red Hat OpenShift Cluster Manager 中的集群状态
在 OpenShift Container Platform Web 控制台中,您可以查看 OpenShift Cluster Manager 上集群状态的详细信息。
先决条件
- 登录到 OpenShift Cluster Manager。
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
- 进入 OpenShift Cluster Manager 中的 Cluster List 列表,并找到您的 OpenShift Container Platform 集群。
- 点集群的 Overview 选项卡。
查看有关集群的以下信息:
- vCPU 和内存可用性和资源使用情况
- 集群 ID、状态、类型、区域和供应商名称
- 按节点类型划分的节点数
- 集群版本详情、集群的创建日期和集群所有者的名称
- 集群的生命周期支持状态
订阅信息,包括服务级别协议(SLA)状态、订阅单元类型、集群的生产环境状态、订阅责任和服务级别
提示要查看集群的历史记录,请点 Cluster history 选项卡。
导航到 Monitoring 页面查看以下信息:
- 已检测到的问题列表
- 正在触发的警报列表
- 集群 Operator 状态和版本
- 集群的资源使用情况
可选:您可以通过进入 Overview 菜单来查看 Red Hat Insights 收集的集群信息。在这个菜单中,您可以查看以下信息:
- 集群可能会暴露的问题,按风险级别分类
- 根据类别进行健康检查的状态
其他资源
- 如需了解更多 与查看集群中的潜在问题的信息,请参阅使用 Insights 发现集群中的问题。
24.1.8. 检查集群资源的可用性和使用
OpenShift Container Platform 提供了一组全面的监控仪表板,可帮助您了解集群组件的状态。
在 Administrator 视角中,您可以访问 OpenShift Container Platform 核心组件的仪表板,包括:
- etcd
- Kubernetes 计算资源
- Kubernetes 网络资源
- Prometheus
- 与集群和节点性能相关的仪表板
图 24.1. 计算资源仪表板示例
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
-
在 OpenShift Container Platform web 控制台的 Administrator 视角中,进入到 Observe
Dashboards。 - 在 Dashboard 列表中选择一个仪表板。有些仪表板(如 etcd 仪表板)在被选择时会生成额外的子菜单。
可选:在 Time Range 列表中为图形选择一个时间范围。
- 选择预定义的时间段。
通过选择 Time Range 列表中的 Custom 时间范围 来设置自定义时间范围。
- 输入或选择 From 和 To date and time。
- 单击 Save 以保存自定义时间范围。
- 可选:选择一个 Refresh Interval。
- 将鼠标悬停在仪表板中的每个图形上,以显示特定项目的详细信息。
其他资源
- 如需有关 OpenShift Container Platform 监控堆栈的更多信息,请参阅监控概述。
24.1.9. 列出正在触发的警报
当 OpenShift Container Platform 集群中有一组定义的条件满足时,警报会提供通知。您可以使用 OpenShift Container Platform Web 控制台中的 Alerting UI 查看集群中触发的警报。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
-
在 Administrator 视角中,导航到 Observe
Alerting Alerts 页面。 - 查看正在触发的警报,包括 严重性 、 状态和 来源。
- 在 Alert Details 页面中选择一个警报来查看更详细的信息。
其他资源
- 如需有关 OpenShift Container Platform 中警报的更多信息,请参阅管理 警报。
24.1.10. 后续步骤
- 如果您在安装集群时遇到问题,请参阅对 安装进行故障排除。
- 安装 OpenShift Container Platform 后,您可以 进一步扩展和自定义集群。