第 24 章 验证和故障排除
24.1. 验证安装 复制链接链接已复制到粘贴板!
您可以按照本文档中的步骤在安装后检查 OpenShift Container Platform 集群的状态。
24.1.1. 查看安装日志 复制链接链接已复制到粘贴板!
您可以在 OpenShift Container Platform 安装日志中查看安装概述。如果安装成功,日志中包括访问集群所需的信息。
先决条件
- 有访问安装主机的访问权限。
流程
查看安装主机上安装目录中的
.openshift_install.log
日志文件:cat <install_dir>/.openshift_install.log
$ cat <install_dir>/.openshift_install.log
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
如果安装成功,日志末尾会包括集群凭证,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.1.2. 查看镜像拉取源 复制链接链接已复制到粘贴板!
对于没有网络连接的集群,您可以使用节点上的命令来查看拉取的镜像源,如 crictl 镜像
。
但是,对于断开连接的安装,若要查看拉取镜像的来源,您必须查看 CRI-O 日志以查找 Trying 以访问
日志条目,如下所示。查看镜像拉取源的其他方法,如 crictl images
命令,显示非镜像镜像的镜像名称,即使镜像是从镜像位置拉取的。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
查看 master 或 worker 节点的 CRI-O 日志:
oc adm node-logs <node_name> -u crio
$ oc adm node-logs <node_name> -u crio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
用于访问日志条目的 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\"" ...
... 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\"" ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 日志可能会显示镜像拉取源两次,如上例中所示。
如果您的
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\"
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\"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.1.3. 获取集群版本、状态和更新详情 复制链接链接已复制到粘贴板!
您可以通过运行 oc get clusterversion
命令来查看集群版本和状态。如果状态显示安装仍在进行,您可以查看 Operator 的状态以了解更多信息。
您还可以列出当前的更新频道并查看可用的集群更新。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
获取集群版本和总体状态:
oc get clusterversion
$ oc get clusterversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.6.4 True False 6m25s Cluster version is 4.6.4
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.6.4 True False 6m25s Cluster version is 4.6.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例输出显示集群已被成功安装。
如果集群状态表示安装仍在进行,您可以通过检查 Operator 状态来获取更详细的进度信息:
oc get clusteroperators.config.openshift.io
$ oc get clusteroperators.config.openshift.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看集群规格、更新可用性和更新历史记录的详细概述:
oc describe clusterversion
$ oc describe clusterversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出当前的更新频道:
oc get clusterversion -o jsonpath='{.items[0].spec}{"\n"}'
$ oc get clusterversion -o jsonpath='{.items[0].spec}{"\n"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"channel":"stable-4.6","clusterID":"245539c1-72a3-41aa-9cec-72ed8cf25c5c"}
{"channel":"stable-4.6","clusterID":"245539c1-72a3-41aa-9cec-72ed8cf25c5c"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看可用的集群更新:
oc adm upgrade
$ oc adm upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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}
$ oc get cloudcredentials cluster \ -o=jsonpath={.spec.credentialsMode}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下输出确认 CCO 以手动模式运行:
输出示例
Manual
Manual
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证集群没有
root
凭证:oc get secrets \ -n kube-system <secret_name>
$ oc get secrets \ -n kube-system <secret_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<secret_name>
是云供应商的 root secret 的名称。Expand 平台 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
Error from server (NotFound): secrets "aws-creds" not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证组件是否在单个组件中使用短期安全凭证:
oc get authentication cluster \ -o jsonpath \ --template='{ .spec.serviceAccountIssuer }'
$ oc get authentication cluster \ -o jsonpath \ --template='{ .spec.serviceAccountIssuer }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令显示集群
Authentication
对象中.spec.serviceAccountIssuer
参数的值。与云供应商关联的 URL 的输出表示集群使用从集群外部创建和管理的简短凭证的手动模式。Azure 集群:通过运行以下命令,验证组件假定 secret 清单中指定的 Azure 客户端 ID:
oc get secrets \ -n openshift-image-registry installer-cloud-credentials \ -o jsonpath='{.data}'
$ oc get secrets \ -n openshift-image-registry installer-cloud-credentials \ -o jsonpath='{.data}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出中包含了
azure_client_id
和azure_federated_token_file
字段代表组件假定 Azure 客户端 ID。Azure 集群 :运行以下命令来验证 pod 身份 Webhook 是否正在运行:
oc get pods \ -n openshift-cloud-credential-operator
$ oc get pods \ -n openshift-cloud-credential-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.1.5. 使用 CLI 查询集群节点状态 复制链接链接已复制到粘贴板!
您可以在安装后验证集群节点的状态。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
列出集群节点的状态。验证输出是否列出所有预期的 control plane 和计算节点,以及每个节点的状态是否为
Ready
:oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看每个集群节点的 CPU 和内存资源的可用性:
oc adm top nodes
$ oc adm top nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 中的 Clusters 列表,并找到您的 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 后,您可以 进一步扩展和自定义集群。