IBM Cloud Docs
为什么 OpenShift 显示群集版本不是最新的?

为什么 OpenShift 显示群集版本不是最新的?

虚拟私有云 经典基础架构 Satellite

您将看到以下一个或多个延长的时间段。

  • OpenShift Web 控制台显示一条条幅,声明集群正在更新,并且“集群设置”页面显示当前版本的状态为 Partial

  • 运行 ibmcloud oc cluster get --cluster <cluster_name> 命令时,会看到 warning 状态,并显示集群操作员的状态不是最新版本。

    State:                          warning
    Status:                         Some Cluster Operators are down-level and need to be updated, see 'https://ibm.biz/rhos_clusterversion_ts'
    
  • 运行 oc get clusterversion 命令时,您会看到较早的版本。

    NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
    version   4.11.27   True        True          27h     Unable to apply 4.12.3: an unknown error has occurred: MultipleErrors
    
  • 您看到集群主升级被取消,状态如下。

    Version update canceled. CAE012: Cannot complete cluster master operations because the current OpenShift clusterversion rollout is not complete. For more information, see the troubleshooting docs: 'https://ibm.biz/rhos_clusterversion_ts'
    

尚未完成集群主节点对新补丁版本的更新或对新次版本的升级。

集群主节点更新将在更新集群版本操作程序后立即完成。 群集版本操作员管理对各种群集操作员的更新,在群集主控更新完成后继续进行更新。

$ oc get clusterversion
NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.13.11   True        False         33h     Cluster version is 4.13.11

$ oc get co
NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
console                                    4.13.11   True        False         False      2d3h    
csi-snapshot-controller                    4.13.11   True        False         False      2d4h    
dns                                        4.13.11   True        False         False      2d4h    
image-registry                             4.13.11   True        False         False      2d4h    
ingress                                    4.13.11   True        False         False      2d4h    
insights                                   4.13.11   True        False         False      2d4h    
kube-apiserver                             4.13.11   True        False         False      2d4h    
kube-controller-manager                    4.13.11   True        False         False      2d4h    
kube-scheduler                             4.13.11   True        False         False      2d4h    
kube-storage-version-migrator              4.13.11   True        False         False      2d4h    
marketplace                                4.13.11   True        False         False      2d4h    
monitoring                                 4.13.11   True        False         False      2d4h    
network                                    4.13.11   True        False         False      2d4h    
node-tuning                                4.13.11   True        False         False      32h     
openshift-apiserver                        4.13.11   True        False         False      2d4h    
openshift-controller-manager               4.13.11   True        False         False      2d4h    
openshift-samples                          4.13.11   True        False         False      33h     
operator-lifecycle-manager                 4.13.11   True        False         False      2d4h    
operator-lifecycle-manager-catalog         4.13.11   True        False         False      2d4h    
operator-lifecycle-manager-packageserver   4.13.11   True        False         False      2d4h    
service-ca                                 4.13.11   True        False         False      2d4h    
storage                                    4.13.11   True        False         False      2d4h    

如果集群刚刚升级,那么集群操作程序可能需要几分钟才能升级。 正常情况下,会看到类似如下的状态,并且随着时间的推移,已完成的步骤数会增加。

Working towards 4.13.11: 511 of 616 done (82% complete), waiting on network

如果集群继续显示长时间的部分更新,那么集群中存在阻止集群操作程序更新到当前版本的问题。 这可能是由许多事情引起的,例如以下示例。

  • 运行状况不佳的集群组件 (例如,阻止推出操作程序更新的工作程序节点)。
  • 对集群操作程序配置的更改不正确。
  • 集群配置的更改有冲突,例如影响 OpenShift 组件的 RBAC 更改。

首先获取有关集群操作员更新进度和问题的更多详细信息。

  1. 运行以下命令获取更多信息。

    oc get clusterversion
    
    oc get clusteroperators
    
    oc describe clusteroperator NAME
    
  2. 请查看命令输出中的 MESSAGE 列,以确定哪些集群操作员当前正在阻止进度并指示问题。 OpenShift 更新操作程序的方式可能导致意外依赖关系; 例如,某些集群操作程序更新可能正在等待其他操作程序完成它们现在正在运行的步骤。

  3. 使用 oc get nodes 命令检查工作程序节点状态。 有时节点不是 Ready,这可能是由于节点上缺少资源或 kube-proxykubelet 存在问题。 这可能会导致更新期间发生问题。

    • 如果最近更改了其中一个不完整操作程序的配置,请通过运行 oc describe clusteroperator NAME 来描述操作程序以获取更多详细信息。例如,oc describe cluster-operator image-registry 可能会显示有助于识别问题的错误。

    • 继续检查操作程序 pod 的状态和日志,以进一步调试问题。 有时操作程序会降级,但这并不意味着更新已失败或不起作用。

  4. 如果您无法识别或解决这些问题,或者如果问题仍然存在,请联系支持人员。 打开 支持案例。 在案例详细信息中,请确保包含任何相关日志文件,错误消息或命令输出。