第 3 章 OVN-Kubernetes 故障排除
OVN-Kubernetes 具有许多内置健康检查和日志来源。按照这些部分中的说明检查集群。如果需要一个支持问题单,请参阅 支持指南来通过 must-gather 收集其他信息。仅在支持团队要求这样做时,才使用 -- gather_network_logs。
3.1. 使用就绪度探测监控 OVN-Kubernetes 健康状况 复制链接链接已复制到粘贴板!
ovnkube-control-plane 和 ovnkube-node pod 配置有就绪度探测的容器。
先决条件
-
访问 OpenShift CLI(
oc)。 -
您可以使用
cluster-admin权限访问集群。 -
您已安装了
jq。
流程
运行以下命令,查看
ovnkube-node就绪度探测的详情:oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node \ -o json | jq '.items[0].spec.containers[] | .name,.readinessProbe'
$ oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node \ -o json | jq '.items[0].spec.containers[] | .name,.readinessProbe'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ovnkube-nodepod 中的北向和南向数据库容器的就绪度探测会检查数据库和ovnkube-controller容器的健康状态。ovnkube-nodepod 中的ovnkube-controller容器有一个就绪度探测来验证 OVN-Kubernetes CNI 配置文件是否存在,这代表 pod 没有运行,或者没有准备好接受配置 pod 的请求。使用以下命令,显示命名空间的所有事件,包括探测失败:
oc get events -n openshift-ovn-kubernetes
$ oc get events -n openshift-ovn-kubernetesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 仅显示特定 pod 的事件:
oc describe pod ovnkube-node-9lqfk -n openshift-ovn-kubernetes
$ oc describe pod ovnkube-node-9lqfk -n openshift-ovn-kubernetesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示集群网络 Operator 的消息和状态:
oc get co/network -o json | jq '.status.conditions[]'
$ oc get co/network -o json | jq '.status.conditions[]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下脚本,显示
ovnkube-nodepod 中每个容器的就绪状态:for p in $(oc get pods --selector app=ovnkube-node -n openshift-ovn-kubernetes \ -o jsonpath='{range.items[*]}{" "}{.metadata.name}'); do echo === $p ===; \ oc get pods -n openshift-ovn-kubernetes $p -o json | jq '.status.containerStatuses[] | .name, .ready'; \ done$ for p in $(oc get pods --selector app=ovnkube-node -n openshift-ovn-kubernetes \ -o jsonpath='{range.items[*]}{" "}{.metadata.name}'); do echo === $p ===; \ oc get pods -n openshift-ovn-kubernetes $p -o json | jq '.status.containerStatuses[] | .name, .ready'; \ doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意预期的是所有容器状态都报告为
true。就绪度探测失败,将状态设置为false。