1.3. 既知の問題
Red Hat Advanced Cluster Management for Kubernetes の既知の問題を確認してください。以下の一覧には、本リリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。Red Hat OpenShift Container Platform クラスターについては、「OpenShift Container Platform の既知の問題」を参照してください。
1.3.1. アップグレードの既知の問題
1.3.1.1. 可観測性アドオンにより、バージョン 2.1.x から 2.3.2 へのアップグレードの低下
2.1.x から 2.3.2 へのアップグレード後、可観測性アドオンの準備が整わないか、またはアップグレード時にイメージマニフェスト ConfigMap が正しく読み込まれないため、一部のクラスターのパフォーマンスが低下してしまう可能性があります。これにより、誤ったイメージが生じます。
この問題を修正するには、以下のコマンドを実行して multicluster-observability-operator
Pod を再起動します。
oc delete pod multicluster-observability-operator -n open-cluster-management
1.3.1.2. 2.1.x にアップグレードすると、証明書が失われます。
Red Hat Advanced Cluster Management をバージョン 2.0 から 2.1 にアップグレードした後、アプリケーションテンプレートエディターを開いて変更を行う際に、アプリケーションをデプロイする場所を指定する設定は事前に選択されません。アプリケーションテンプレートエディターでアプリケーション設定を変更した場合には、エディターを保存して閉じる前に、アプリケーションのデプロイメント設定を選択する必要があります。
1.3.1.3. 2.1.1 へのアップグレードにより証明書が失われます。
クラスターを Red Hat Advanced Cluster Management バージョン 2.1.1 にアップグレードすると、クラスター上の証明書の一部またはすべてが失われます。以下のコマンドのいずれかを入力すると、この状況を確認できます。
oc get certificates -n open-cluster-management
または
oc get pods -n open-cluster-management | grep -vE "Completed|Running"
最初のコマンドの実行時に想定よりも少ない証明書が返された場合、または 2 番目のコマンドの実行後に複数の Pod が返された場合は、 generate-update-issue-cert-manifest.sh
スクリプト を実行して証明書を更新します。
1.3.1.4. バージョン 2.1.1 へのアップグレードは、ClusterImageSet エラーにより完了しません。
Red Hat Advanced Cluster Management for Kubernetes バージョン 2.1.0 を Red Hat Advanced Cluster Management バージョン 2.1.1 にアップグレードしても完了せず、以下のエラーと同様のエラーが表示される場合があります。
failed to get candidate release: rendered manifests contain a resource that already exists. Unable to continue with update: ClusterImageSet "img4.6.1-x86-64" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "console-chart-c4cb5"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "open-cluster-management"
これは、既存バージョンの 1 つまたは複数の ClusterImageSets に、アップグレードと共に追加されるバージョンと同じ名前を持つ場合に生じます。これにより、競合が生じます。この問題を回避するには、以下の手順を実行します。
- 実行中のアップグレードを停止します。
- エラーメッセージで特定されるローカル環境から、ClusterImageSet または ClusterImageSets を削除します。
- アップグレードを再起動します。
1.3.1.5. 2.1.1 へのアップグレードにより、klusterletaddonconfig CRD が無効になります。
Red Hat Advanced Cluster Management をバージョン 2.1.0 から 2.1.1 にアップグレードすると、アップグレード中に klusterletaddonconfig
カスタムリソース定義 (CRD) が再インストールされる可能性があります。再インストールされる場合、すべてのアドオンは Cluster settings ページに Disabled
ステータスを表示します。問題を診断し、klusterletaddonconfig CRD を復元するには、以下の手順を実行します。
-
oc login
コマンドを使用して、ハブクラスターにログオンします。 以下のコマンドを実行して、
klusterletaddonconfig
CRD が削除されたのは、CRD の再インストールが原因であることを確認します。% oc get klusterletaddonconfig --all-namespaces
返されるコンテンツが
No resources found
の場合は、再インストールが原因である可能性が高いです。ステップ 3 に進みます。以下のスクリプトをファイルに保存します。この例では、ファイル名は
restore-addons.sh
です。KUBECTL=oc ACM_NAMESPACE=open-cluster-management ACM_VERSION=$(${KUBECTL} get -n ${ACM_NAMESPACE} `${KUBECTL} get mch -oname -n ${ACM_NAMESPACE} | head -n1` -ojsonpath='{.status.desiredVersion}') if [ "${ACM_VERSION}" = "" ]; then ACM_VERSION=2.1.1 fi echo "ACM version: ${ACM_VERSION}" for clusterName in `${KUBECTL} get managedcluster --ignore-not-found | grep -v "NAME" | awk '{ print $1 }'`; do echo "Checking klusterletaddonconfig in ${clusterName} namespace." ${KUBECTL} get klusterletaddonconfig ${clusterName} -n ${clusterName} >/dev/null 2>&1 if [ "$?" != "0" ]; then echo " klusterletaddonconfig in ${clusterName} is missing." echo " Creating..." printf " " cat <<EOF | ${KUBECTL} apply -f - apiVersion: agent.open-cluster-management.io/v1 kind: KlusterletAddonConfig metadata: name: ${clusterName} namespace: ${clusterName} spec: clusterLabels: cloud: auto-detect vendor: auto-detect clusterName: ${clusterName} clusterNamespace: ${clusterName} applicationManager: enabled: true certPolicyController: enabled: true iamPolicyController: enabled: true policyController: enabled: true searchCollector: enabled: true version: ${ACM_VERSION} EOF fi echo " Done." done
open-cluster-management
namespace に Red Hat Advanced Cluster Management をインストールしなかった場合は、ACM_NAMESPACE
の値を namespace の名前に置き換えます。CLI からスクリプトを実行します。コマンドは、以下のコマンドのようになるはずです。
chmod +x restore-addons.sh && ./restore-addons.sh
スクリプトを実行すると、削除された
klusterletaddonconfig
CRD が各マネージドクラスター namespace に再作成されます。
1.3.1.6. OpenShift Container Platform クラスターのアップグレード失敗のステータス
Openshift Container Platform クラスターがアップグレードの段階に入ると、クラスター Pod は再起動され、クラスターのステータスが 1-5 分ほど、upgrade failed
のままになることがあります。この動作は想定されており、数分後に解決されます。
1.3.1.7. バージョン 2.0.4 から 2.1 にアップグレードすると、ClusterServiceVersion が保留状態のままになる
Red Hat Advanced Cluster Management バージョン 2.0.4 から 2.1 にアップグレードした後に、oc get csv
コマンドを実行します。この出力で、Red Hat Advanced Cluster Management ClusterServiceVersion (CSV) の PHASE
が Pending
にも拘らず、NAME
は advanced-cluster-management.v2.1.0
に更新されています。
この問題を回避するには、以下の手順を実行し、 clusterRole
カスタムリソースを検索して、このリソースがない場合には作成します。
以下のコマンドを入力して、the Red Hat Advanced Cluster Management 2.1 CSV がデプロイした
clusterrolebinding
リソースすべてを検索します。oc get clusterrolebinding |grep advanced-cluster-management
出力は次のような内容になるはずです。
advanced-cluster-management.v2.1.0-86dfdf7c5d ClusterRole/advanced-cluster-management.v2.1.0-86dfdf7c5d 9h advanced-cluster-management.v2.1.0-cd8d57f64 ClusterRole/advanced-cluster-management.v2.1.0-cd8d57f64 9h
以下のようなコマンドを入力して、各
clusterrolebinding
を開き、open-cluster-management
サービスアカウントに関連付けられているclusterRole
名を検索します。oc get clusterrolebinding advanced-cluster-management.v2.1.0-cd8d57f64 -o yaml
出力は次のような内容になるはずです。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: advanced-cluster-management.v2.1.0-cd8d57f64 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: advanced-cluster-management.v2.1.0-cd8d57f64 subjects: - kind: ServiceAccount name: multicluster-operators namespace: open-cluster-management
以下のコンテンツを
.yaml
ファイルに追加し、欠落しているclusterRole
エントリーを手作業で作成します。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: advanced-cluster-management.v2.1.0-cd8d57f64 rules: - apiGroups: - '*' resources: - '*' verbs: - '*'