Warum tut OpenShift anzeigen, dass die Clusterversion nicht auf dem neuesten Stand ist?

Virtual Private Cloud Klassische Infrastruktur Satellite

Für einen längeren Zeitraum wird mindestens eines der folgenden Elemente angezeigt.

  • Die OpenShift-Webkonsole zeigt ein Banner an, das angibt, dass der Cluster aktualisiert wird, und auf der Seite Clustereinstellungen wird angezeigt, dass die aktuelle Version den Status Partial hat.

  • Wenn Sie den Befehl ibmcloud oc cluster get --cluster <cluster_name> ausführen, sehen Sie den Status warning und einen Status, der anzeigt, dass die Clusteroperatoren nicht auf dem neuesten Stand sind.

    State:                          warning
    Status:                         Some Cluster Operators are down-level and need to be updated, see 'https://ibm.biz/rhos_clusterversion_ts'
    
  • Wenn Sie den Befehl oc get clusterversion ausführen, wird eine frühere Version angezeigt.

    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
    
  • Sie sehen, dass ein Cluster-Master-Upgrade mit einem Status ähnlich dem Folgenden abgebrochen wurde.

    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'
    

Eine Cluster-Master-Aktualisierung auf eine neue Patchversion oder ein Upgrade auf eine neue Nebenversion wurde nicht abgeschlossen.

Eine Cluster-Master-Aktualisierung wird bald nach der Aktualisierung des Clusterversionsoperators abgeschlossen. Der Cluster Version Operator verwaltet die Aktualisierungen der verschiedenen Cluster Operators, die auch nach Abschluss der Aktualisierung des Clustermasters fortgesetzt werden.

$ 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    

Wenn für den Cluster gerade ein Upgrade durchgeführt wurde, kann das Upgrade der Clusteroperatoren mehrere Minuten dauern. Es ist normal, einen Status wie den folgenden anzuzeigen, wobei die Anzahl der abgeschlossenen Schritte im Laufe der Zeit zunimmt.

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

Wenn der Cluster weiterhin eine Teilaktualisierung für einen längeren Zeitraum anzeigt, liegt ein Problem im Cluster vor, das verhindert, dass die Clusteroperatoren auf die aktuelle Version aktualisieren. Dies kann durch viele Dinge verursacht werden, wie die folgenden Beispiele.

  • Fehlerhafte Clusterkomponenten, wie z. B. Workerknoten, die das Rollout von Operatoraktualisierungen blockieren.
  • Falsche Änderung an einer Clusteroperatorkonfiguration.
  • Widersprüchliche Änderungen an Clusterkonfigurationen, z. B. RBAC-Änderungen, die sich auf OpenShift-Komponenten auswirken.

Rufen Sie zunächst detailliertere Informationen zum Aktualisierungsfortschritt und zu Problemen des Clusteroperators ab.

  1. Führen Sie die folgenden Befehle aus, um weitere Informationen zu erhalten.

    oc get clusterversion
    
    oc get clusteroperators
    
    oc describe clusteroperator NAME
    
  2. Überprüfen Sie die Spalte MESSAGE in der Befehlsausgabe, um festzustellen, welche Clusteroperatoren den Fortschritt derzeit blockieren, und geben Sie einen Hinweis auf das Problem. Die Art und Weise, in der OpenShift-Operatoren aktualisiert werden, kann zu unerwarteten Abhängigkeiten führen. Beispielsweise können einige Aktualisierungen von Clusteroperatoren darauf warten, dass andere Operatoren den Schritt ausführen, den sie jetzt ausführen.

  3. Überprüfen Sie den Status des Workerknotens mit dem Befehl oc get nodes. Manchmal sind Knoten nicht Ready, was auf einen Mangel an Ressourcen auf einem Knoten oder auf ein Problem mit kube-proxy oder kubelet zurückzuführen sein kann. Dies kann zu Problemen während einer Aktualisierung führen.

    • Wenn Sie kürzlich die Konfiguration eines der unvollständigen Operatoren geändert haben, beschreiben Sie den Operator, um weitere Details zu erhalten, indem Sie oc describe clusteroperator NAME ausführen.oc describe cluster-operator image-registry kann beispielsweise einen Fehler anzeigen, der bei der Identifizierung des Problems hilft.

    • Fahren Sie mit der Überprüfung des Status und der Protokolle der Operator-Pods für das weitere Debugging des Problems fort. Manchmal sind die Operatoren vermindert, aber das bedeutet nicht, dass die Aktualisierungen fehlgeschlagen sind oder nicht funktionieren.

  4. Wenn Sie die Probleme nicht identifizieren oder beheben können, oder wenn das Problem bestehen bleibt, wenden Sie sich an den Support. Öffnen Sie einen Supportfall. Stellen Sie in den Falldetails sicher, dass alle relevanten Protokolldateien, Fehlernachrichten oder Befehlsausgaben enthalten sind.