1.4. Red Hat Advanced Cluster Management のアップグレード後に ocm-controller エラーのトラブルシューティング


2.7.x から 2.8.x、さらに 2.9.0 にアップグレードすると、multicluster-engine namespace の ocm-controller がクラッシュします。

1.4.1. 現象: Red Hat Advanced Cluster Management のアップグレード後に ocm-controller エラーのトラブルシューティング

ManagedClusterSet および ManagedClusterSetBinding カスタムリソース定義をリスト表示しようとすると、次のエラーメッセージが表示されます。

Error from server: request to convert CR from an invalid group/version: cluster.open-cluster-management.io/v1beta1

前のメッセージは、v1beta1 から v1beta2 への ManagedClusterSets および ManagedClusterSetBindings カスタムリソース定義の移行が失敗したことを示しています。

1.4.2. 問題の解決: Red Hat Advanced Cluster Management アップグレード後の ocm-controller エラーのトラブルシューティング

このエラーを解決するには、API の移行を手動で開始する必要があります。以下の手順を実行します。

  1. cluster-manager を以前のリリースに戻します。

    1. 以下のコマンドを使用して multiclusterengine を一時停止します。

      oc annotate mce multiclusterengine pause=true
    2. 以下のコマンドを実行して、cluster-manager deployment のイメージを以前のバージョンに置き換えます。

      oc patch deployment cluster-manager -n multicluster-engine -p \  '{"spec":{"template":{"spec":{"containers":[{"name":"registration-operator","image":"registry.redhat.io/multicluster-engine/registration-operator-rhel8@sha256:35999c3a1022d908b6fe30aa9b85878e666392dbbd685e9f3edcb83e3336d19f"}]}}}}'
      export ORIGIN_REGISTRATION_IMAGE=$(oc get clustermanager cluster-manager -o jsonpath='{.spec.registrationImagePullSpec}')
    3. ClusterManager リソースの登録イメージ参照を以前のバージョンに置き換えます。以下のコマンドを実行します。

      oc patch clustermanager cluster-manager --type='json' -p='[{"op": "replace", "path": "/spec/registrationImagePullSpec", "value": "registry.redhat.io/multicluster-engine/registration-rhel8@sha256:a3c22aa4326859d75986bf24322068f0aff2103cccc06e1001faaf79b9390515"}]'
  2. 以下のコマンドを実行して、ManagedClusterSets および ManagedClusterSetBindings カスタムリソース定義を以前のリリースに戻します。

    oc annotate crds managedclustersets.cluster.open-cluster-management.io operator.open-cluster-management.io/version-
    oc annotate crds  managedclustersetbindings.cluster.open-cluster-management.io operator.open-cluster-management.io/version-
  3. cluster-manager を再起動し、カスタムリソース定義が再作成されるまで待ちます。以下のコマンドを実行します。

    oc -n multicluster-engine delete pods -l app=cluster-manager
    oc wait crds managedclustersets.cluster.open-cluster-management.io --for=jsonpath="{.metadata.annotations['operator\.open-cluster-management\.io/version']}"="2.3.3" --timeout=120s
    oc wait crds managedclustersetbindings.cluster.open-cluster-management.io --for=jsonpath="{.metadata.annotations['operator\.open-cluster-management\.io/version']}"="2.3.3" --timeout=120s
  4. 以下のコマンドを使用して、ストレージバージョンの移行を開始します。

    oc patch StorageVersionMigration managedclustersets.cluster.open-cluster-management.io --type='json' -p='[{"op":"replace", "path":"/spec/resource/version", "value":"v1beta1"}]'
    oc patch StorageVersionMigration managedclustersets.cluster.open-cluster-management.io --type='json' --subresource status -p='[{"op":"remove", "path":"/status/conditions"}]'
    oc patch StorageVersionMigration managedclustersetbindings.cluster.open-cluster-management.io --type='json' -p='[{"op":"replace", "path":"/spec/resource/version", "value":"v1beta1"}]'
    oc patch StorageVersionMigration managedclustersetbindings.cluster.open-cluster-management.io --type='json' --subresource status -p='[{"op":"remove", "path":"/status/conditions"}]'
  5. 次のコマンドを実行して、移行が完了するまで待ちます。

    oc wait storageversionmigration managedclustersets.cluster.open-cluster-management.io --for=condition=Succeeded --timeout=120s
    oc wait storageversionmigration managedclustersetbindings.cluster.open-cluster-management.io --for=condition=Succeeded --timeout=120s
  6. cluster-manager を Red Hat Advanced Cluster Management 2.12 に復元します。これには数分の時間がかかる場合があります。以下のコマンドを実行します。

    oc annotate mce multiclusterengine pause-
    oc patch clustermanager cluster-manager --type='json' -p='[{"op": "replace", "path": "/spec/registrationImagePullSpec", "value": "'$ORIGIN_REGISTRATION_IMAGE'"}]'

1.4.2.1. 検証

Red Hat Advanced Cluster Management が復元されていることを確認するには、以下のコマンドを実行します。

oc get managedclusterset
oc get managedclustersetbinding -A

コマンドを実行すると、ManagedClusterSets および ManagedClusterSetBindings リソースがエラーメッセージなしで表示されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.