5.5. 对初始化集群失败进行故障排除
安装程序使用 Cluster Version Operator 创建 OpenShift Container Platform 集群的所有组件。当安装程序无法初始化集群时,您可以从 ClusterVersion 和 ClusterOperator 对象检索最重要的信息。
流程
运行以下命令检查
ClusterVersion对象:oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusterversion -o yaml$ oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusterversion -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来查看条件:
oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusterversion version \ -o=jsonpath='{range .status.conditions[*]}{.type}{" "}{.status}{" "}{.message}{"\n"}{end}'$ oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusterversion version \ -o=jsonpath='{range .status.conditions[*]}{.type}{" "}{.status}{" "}{.message}{"\n"}{end}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 某些最重要的条件包括
Failing、Available和Progressing。输出示例
Available True Done applying 4.1.1 Failing False Progressing False Cluster version is 4.0.0-0.alpha-2019-02-26-194020 RetrievedUpdates False Unable to retrieve available updates: unknown version 4.1.1
Available True Done applying 4.1.1 Failing False Progressing False Cluster version is 4.0.0-0.alpha-2019-02-26-194020 RetrievedUpdates False Unable to retrieve available updates: unknown version 4.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令检查
ClusterOperator对象:oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator$ oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令返回集群 Operator 的状态。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令检查单个集群 Operator:
oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator <operator> -oyaml$ oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator <operator> -oyaml1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<operator>替换为集群 Operator 的名称。此命令可用于识别集群 Operator 没有达到Available状态的原因或处于Failed状态。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要获取集群 Operator 的状态条件,请运行以下命令:
oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator <operator> \ -o=jsonpath='{range .status.conditions[*]}{.type}{" "}{.status}{" "}{.message}{"\n"}{end}'$ oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator <operator> \ -o=jsonpath='{range .status.conditions[*]}{.type}{" "}{.status}{" "}{.message}{"\n"}{end}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<operator>替换为以上其中一个 Operator 的名称。输出示例
Available True Successfully rolled out the stack Progressing False Failing False
Available True Successfully rolled out the stack Progressing False Failing FalseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要检索集群 Operator 拥有的对象列表,请执行以下命令:
oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator kube-apiserver \ -o=jsonpath='{.status.relatedObjects}'oc --kubeconfig=${INSTALL_DIR}/auth/kubeconfig get clusteroperator kube-apiserver \ -o=jsonpath='{.status.relatedObjects}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
[map[resource:kubeapiservers group:operator.openshift.io name:cluster] map[group: name:openshift-config resource:namespaces] map[group: name:openshift-config-managed resource:namespaces] map[group: name:openshift-kube-apiserver-operator resource:namespaces] map[group: name:openshift-kube-apiserver resource:namespaces]]
[map[resource:kubeapiservers group:operator.openshift.io name:cluster] map[group: name:openshift-config resource:namespaces] map[group: name:openshift-config-managed resource:namespaces] map[group: name:openshift-kube-apiserver-operator resource:namespaces] map[group: name:openshift-kube-apiserver resource:namespaces]]Copy to Clipboard Copied! Toggle word wrap Toggle overflow