第 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
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 的名称。Expand 平台 Secret 名称 Amazon Web Services (AWS)
aws-credsMicrosoft Azure
azure-credentialsGoogle 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.30.3 control-plane-1.example.com Ready master 41m v1.30.3 control-plane-2.example.com Ready master 45m v1.30.3 compute-2.example.com Ready worker 38m v1.30.3 compute-3.example.com Ready worker 33m v1.30.3 control-plane-3.example.com Ready master 41m v1.30.3查看每个集群节点的 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 收集的集群信息。在这个菜单中,您可以查看以下信息:
- 集群可能会暴露的问题,按风险级别分类
- 根据类别进行健康检查的状态
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。
- 将鼠标悬停在仪表板中的每个图形上,以显示特定项目的详细信息。
24.1.9. 列出正在触发的警报 复制链接链接已复制到粘贴板!
当 OpenShift Container Platform 集群中有一组定义的条件满足时,警报会提供通知。您可以使用 OpenShift Container Platform Web 控制台中的 Alerting UI 查看集群中触发的警报。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。
流程
-
在 Administrator 视角中,导航到 Observe
Alerting Alerts 页面。 - 查看正在触发的警报,包括 严重性 、 状态和 来源。
- 在 Alert Details 页面中选择一个警报来查看更详细的信息。
24.1.10. 后续步骤 复制链接链接已复制到粘贴板!
- 如果您在安装集群时遇到问题,请参阅对 安装进行故障排除。
- 安装 OpenShift Container Platform 后,您可以 进一步扩展和自定义集群。