1.3. 既知の問題


アプリケーション管理に関する既知の問題を確認します。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、OpenShift Container Platform の既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

クラスター管理または クラスターライフサイクル は、Red Hat Advanced Cluster Management の有無にかかわらず、マルチクラスターエンジン Operator によって提供されます。Red Hat Advanced Cluster Management のみに適用されるクラスター管理に関する以下の既知の問題と制限事項を参照してください。クラスター管理の既知の問題のほとんどは、クラスターライフサイクルの既知の問題 にあるクラスターライフサイクルのドキュメントに記載されています。

1.3.1. インストール関連の既知の問題

インストールに関する既知の問題を確認してください。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、OpenShift Container Platform の既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

1.3.1.1. ARM コンバージドフローでのインフラストラクチャー Operator のエラー

infrastructure-operator をインストールすると、ARM を使用するコンバージドフローは機能しません。この問題を解決するには、ALLOW_CONVERGED_FLOWfalse に設定します。

  1. 以下のコマンドを実行して ConfigMap リソースを作成します。

    oc create -f
    Copy to Clipboard Toggle word wrap
  2. oc apply -f を実行して、ファイルを適用します。ALLOW_CONVERGED_FLOWfalse に設定して以下のファイルサンプルを参照してください。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-assisted-service-config
      namespace: assisted-installer
    data:
      ALLOW_CONVERGED_FLOW: false
    Copy to Clipboard Toggle word wrap
  3. agentserviceconfig に以下のコマンドでアノテーションを付けます。

    oc annotate --overwrite AgentServiceConfig agent unsupported.agent-install.openshift.io/assisted-service-configmap=my-assisted-service-config
    Copy to Clipboard Toggle word wrap

問題が解決されると、エージェントはインベントリーに表示されます。

1.3.1.2. エラータリリースへのアップグレード後も非推奨のリソースが残る

2.4.x から 2.5.x にアップグレードしてから 2.6.x にアップグレードした後、マネージドクラスターの namespace に非推奨のリソースが残る場合があります。バージョン 2.6.x が 2.4.x からアップグレードされた場合、これらの非推奨のリソースを手動で削除する必要があります。

注記: バージョン 2.5.x からバージョン 2.6.x にアップグレードする前に、30 分以上待つ必要があります。

コンソールから削除するか、削除するリソースに対して次の例のようなコマンドを実行できます。

oc delete -n <managed cluster namespace> managedclusteraddons.addon.open-cluster-management.io <resource-name>
Copy to Clipboard Toggle word wrap

残っている可能性のある非推奨のリソースのリストを参照してください。

managedclusteraddons.addon.open-cluster-management.io:
policy-controller
manifestworks.work.open-cluster-management.io:
-klusterlet-addon-appmgr
-klusterlet-addon-certpolicyctrl
-klusterlet-addon-crds
-klusterlet-addon-iampolicyctrl
-klusterlet-addon-operator
-klusterlet-addon-policyctrl
-klusterlet-addon-workmgr
Copy to Clipboard Toggle word wrap

1.3.1.3. Red Hat Advanced Cluster Management のアップグレード後に Pod が復旧しないことがある

Red Hat Advanced Cluster Management を新しいバージョンにアップグレードした後、StatefulSet に属するいくつかの Pod が failed 状態のままになることがあります。このまれなイベントは、Kubernetes の既知の問題 が原因です。

この問題の回避策として、失敗した Pod を削除します。Kubernetes は、正しい設定で自動的に再起動します。

1.3.1.4. OpenShift Container Platform クラスターのアップグレード失敗のステータス

OpenShift Container Platform クラスターがアップグレードの段階に入ると、クラスター Pod は再起動され、クラスターのステータスが 1-5 分ほど、upgrade failed のままになることがあります。この動作は想定されており、数分後に解決されます。

1.3.1.5. MultiClusterEngine の作成ボタンが機能しない

Red Hat OpenShift Container Platform コンソールに Red Hat Advanced Cluster Management for Kubernetes をインストールすると、ポップアップウィンドウに次のメッセージが表示されます。

MultiClusterEngine required

Create a MultiClusterEngine instance to use this Operator.

ポップアップウィンドウメッセージの Create MultiClusterEngine ボタンが機能しない場合があります。この問題を回避するには、提供された API セクションの MultiClusterEngine タイルで インスタンスの作成 を選択します。

1.3.2. ビジネス継続性関連の既知の問題

Red Hat Advanced Cluster Management for Kubernetes の既知の問題を確認してください。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、OpenShift Container Platform の既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

1.3.2.1. バックアップおよび復元の既知の問題

バックアップと復元の既知の問題と制限事項が、利用可能な場合は回避策とともにここにリストされます。

1.3.2.1.1. cluster-proxy-addon がハブクラスターのバックアップと復元中に失敗する

Red Hat Advanced Cluster Management ハブクラスターをバックアップする場合は、これをアンインストールし、同じクラスターに再インストールしてから復元すると、cluster-proxy-addon が機能しなくなります。Pod ログから以下のエラーメッセージが表示されます。

E0430 19:11:20.810624 1 clientset.go:188] "cannot connect once" err="rpc error: code = Unavailable desc = connection error: desc = \"transport: authentication handshake failed: tls: failed to verify certificate: x509: certificate signed by unknown authority\""
Copy to Clipboard Toggle word wrap

この問題を回避するには、以下の手順を実行します。

  1. 以下のコマンドを実行して cluster-proxy-addon を無効にします。

    oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[
    {"name":"cluster-proxy-addon","enabled": false}
    ]}}}'
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して、cluster-proxy-addon を再インストールします。

    oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[
    {"name":"cluster-proxy-addon","enabled": true}
    ]}}}'
    Copy to Clipboard Toggle word wrap

Red Hat Advanced Cluster Management のバックアップおよびリストア機能を使用して、ベアメタルクラスターのリソースがバックアップされ、セカンダリーハブクラスターにリストアされる場合は、マネージドクラスターがノードに再インストールされ、既存のマネージドクラスターが壊れます。

注記: これは、ゼロタッチプロビジョニングを使用してデプロイされたベアメタルクラスターにのみ影響があります。つまり、ベアメタルノードの電源のオンとオフを管理し、起動用の仮想メディアを接続する BareMetalHost リソースが含まれます。BareMetalHost リソースがマネージドクラスターのデプロイメントで使用されない場合は、悪影響はありません。

この問題を回避するために、プライマリーハブクラスター上の BareMetalHost リソースは、マネージドクラスターバックアップでバックアップされなくなりました。

別のユースケースがあり、プライマリーハブクラスター上のマネージド BareMetalHost リソースをバックアップする場合は、プライマリーハブクラスター上の BareMetalHost リソースにバックアップラベル cluster.open-cluster-management.io/backup を追加します。

このバックアップラベルを使用して汎用リソースをバックアップする方法の詳細は、バックアップされるリソース のトピックを参照してください。

1.3.2.1.3. OpenShift Container Platform 3.11 マネージドクラスターのリストアはサポートされません

OpenShift Container Platform 3.11 マネージドクラスターがあり、クラスターを復元する場合、マネージドクラスターは新しいハブクラスターに自動的に接続されません。

これは、マネージドサービスアカウントアドオンが OpenShift Container Platform 3.11 マネージドクラスターでサポートされていないために発生します。

1.3.2.1.4. OADP 1.1.2 以降を使用すると、BackupSchedule に FailedValidation ステータスが表示される

Red Hat Advanced Cluster Management のバックアップおよび復元コンポーネントを有効にし、DataProtectionApplication リソースを正常に作成すると、BackupStorageLocation リソースが Available のステータスで作成されます。OADP バージョン 1.1.2 以降を使用している場合、BackupSchedule リソースを作成すると、次のメッセージが表示されてステータスが FailedValidation になることがあります。

oc get backupschedule -n open-cluster-management-backup
NAME PHASE MESSAGE
rosa-backup-schedule FailedValidation Backup storage location is not available. Check velero.io.BackupStorageLocation and validate storage credentials.
Copy to Clipboard Toggle word wrap

このエラーは、BackupStorageLocation リソースの ownerReference の値がないために発生します。DataProtectionApplication リソースの値は、ownerReference の値として使用する必要があります。

この問題を回避するには、ownerReference BackupStorageLocation に手動で追加します。

  1. 次のコマンドを実行して、oadp-operator.v1.1.2 ファイルを開きます。

    oc edit csv -n open-cluster-management-backup oadp-operator.v1.1.2
    Copy to Clipboard Toggle word wrap
  2. OADP Operator CSV の 10 に置き換えて、spec.deployments.label.spec.replicas の値を編集します。
  3. 次の例のとおり、YAML スクリプトの ownerReference アノテーションにパッチを適用します。

    metadata:
    resourceVersion: '273482'
    name: dpa-sample-1
    uid: 4701599a-cdf5-48ac-9264-695a95b935a0
    namespace: open-cluster-management-backup
    ownerReferences: <<
    
    apiVersion: oadp.openshift.io/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: DataProtectionApplication
    name: dpa-sample
    uid: 52acd151-52fd-440a-a846-95a0d7368ff7
    Copy to Clipboard Toggle word wrap
  4. spec.deployments.label.spec.replicas の値を 1 に戻し、新しい設定でデータ保護アプリケーションプロセスを開始します。
1.3.2.1.5. Velero 復元の制限

データが復元される新しいハブクラスターにユーザーが作成したリソースがある場合、新しいハブクラスターはアクティブなハブクラスターとは異なる設定を持つことができます。たとえば、バックアップデータが新しいハブクラスターで復元される前に、新しいハブクラスターで作成された既存のポリシーを含めることができます。

既存のリソースが復元されたバックアップの一部でない場合、Velero はそれらをスキップするため、新しいハブクラスターのポリシーは変更されず、新しいハブクラスターとアクティブなハブクラスターの間で異なる設定が生じます。

この制限に対処するために、クラスターのバックアップと復元のオペレーターは、restore.cluster.open-cluster-management.io リソースが作成されたときに、ユーザーが作成したリソースをクリーンアップする復元後の操作、または別の復元操作を実行します。

詳細は、バックアップおよび復元 Operator のインストール トピックを参照してください。

1.3.2.1.6. パッシブ設定ではマネージドクラスターが表示されない

マネージドクラスターは、アクティブ化データがパッシブハブクラスターで復元された場合にのみ表示されます。

1.3.2.1.7. マネージドクラスターリソースが復元されない

local-cluster マネージドクラスターリソースの設定を復元し、新しいハブクラスターで local-cluster データを上書きすると、設定が正しく設定されません。リソースにはクラスター URL の詳細など、local-cluster 固有の情報が含まれているため、以前のハブクラスター local-cluster のコンテンツはバックアップされません。

復元されたクラスターの local-cluster リソースに関連するすべての設定変更を手動で適用する必要があります。バックアップおよび復元 Operator のインストール トピックの 新しいハブクラスターの準備 を参照してください。

Hive マネージドクラスターの変更またはローテーションされた認証局 (CA) のバックアップを新しいハブクラスターで復元すると、マネージドクラスターは新しいハブクラスターへの接続に失敗します。このマネージドクラスターの admin kubeconfig シークレット (バックアップで使用可能) が無効になっているため、接続は失敗します。

新しいハブクラスター上のマネージドクラスターの復元された admin kubeconfig シークレットを手動で更新する必要があります。

1.3.2.1.9. インポートされたマネージドクラスターに Pending Import ステータスが表示される

プライマリーハブクラスターに手動でインポートされたマネージドクラスターは、アクティブ化データがパッシブハブクラスターで復元されると、Pending Import のステータスを示します。詳細は、管理されたサービスアカウントを使用したクラスターの接続 を参照してください。

ハブクラスターデータが新しいハブクラスターで復元されるとき、appliedmanifestwork は固定クラスターセットではないアプリケーションサブスクリプションの配置規則を持つマネージドクラスターから削除されません。

固定クラスターセットではないアプリケーションサブスクリプションの配置ルールの例を次に示します。

spec:
  clusterReplicas: 1
  clusterSelector:
    matchLabels:
      environment: dev
Copy to Clipboard Toggle word wrap

その結果、マネージドクラスターが復元されたハブクラスターから切り離されると、アプリケーションは孤立します。

この問題を回避するには、配置ルールで固定クラスターセットを指定します。以下の例を参照してください。

spec:
  clusterSelector:
    matchLabels:
      environment: dev
Copy to Clipboard Toggle word wrap

次のコマンドを実行して、残りの appliedmanifestwork を手動で削除することもできます。

oc delete appliedmanifestwork <the-left-appliedmanifestwork-name>
Copy to Clipboard Toggle word wrap

ハブクラスターデータが新しいハブクラスターで復元されるとき、appliedmanifestwork は固定クラスターセットではないアプリケーションサブスクリプションの配置規則を持つマネージドクラスターから削除されません。その結果、マネージドクラスターが復元されたハブクラスターから切り離されると、アプリケーションは孤立します。

固定クラスターセットではないアプリケーションサブスクリプションの配置ルールの例を次に示します。

spec:
  clusterReplicas: 1
  clusterSelector:
    matchLabels:
      environment: dev
Copy to Clipboard Toggle word wrap

この問題を回避するには、配置ルールで固定クラスターセットを指定します。以下の例を参照してください。

spec:
  clusterSelector:
    matchLabels:
      environment: dev
Copy to Clipboard Toggle word wrap

次のコマンドを実行して、残りの appliedmanifestwork を手動で削除できます。

oc delete appliedmanifestwork <the-left-appliedmanifestwork-name>
Copy to Clipboard Toggle word wrap
1.3.2.1.12. appliedmanifestwork が削除されず、agentID が仕様にない

Red Hat Advanced Cluster Management 2.6 をプライマリーハブクラスターとして使用しているが、リストアハブクラスターがバージョン 2.7 以降である場合、このフィールドは 2.7 リリースで導入されたため、appliedmanifestworks の仕様に agentID がありません。これにより、マネージドクラスターのプライマリーハブに追加の appliedmanifestworks が生成されます。

この問題を回避するには、プライマリーハブクラスターを Red Hat Advanced Cluster Management 2.7 にアップグレードしてから、新しいハブクラスターにバックアップを復元します。

appliedmanifestwork ごとに spec.agentID を手動で設定して、マネージドクラスターを修正します。

  1. 次のコマンドを実行して、agentID を取得します。

    oc get klusterlet klusterlet -o jsonpath='{.metadata.uid}'
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して、appliedmanifestwork ごとに spec.agentID を設定します。

    oc patch appliedmanifestwork <appliedmanifestwork_name> --type=merge -p '{"spec":{"agentID": "'$AGENT_ID'"}}'
    Copy to Clipboard Toggle word wrap
1.3.2.1.13. managed-serviceaccount アドオンステータスは Unknownと表示されます。

マネージドクラスター appliedmanifestwork addon-managed-serviceaccount-deploy は、新しいハブクラスターの Kubernetes Operator リソースのマルチクラスターエンジンで有効にせずに Managed Service Account を使用している場合は、インポートされたマネージドクラスターから削除されます。

マネージドクラスターは引き続き新しいハブクラスターにインポートされますが、managed-serviceaccount アドオンのステータスは Unknown と表示されます。

マルチクラスターエンジン Operator リソースで Managed Service Account を有効にした後、managed-serviceaccount アドオンを回復できます。Managed Service Account を有効にする方法は、自動インポートの有効化 を参照してください。

1.3.3. コンソール関連の既知の問題

コンソールの既知の問題を確認してください。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、OpenShift Container Platform の既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

1.3.3.1. PostgreSQL Pod の CrashLoopBackoff 状態を検索する

search-postgres Pod は CrashLoopBackoff 状態です。Red Hat Advanced Cluster Management が hugepages パラメーターが有効になっているノードを含むクラスターにデプロイされており、これらのノードで search-postgres Pod がスケジュールされている場合、Pod は起動しません。

search-postgres Pod のメモリーを増やすには、次の手順を実行します。

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

    oc annotate search search-v2-operator search-pause=true
    Copy to Clipboard Toggle word wrap
  2. hugepages パラメーターの制限を使用して、search-postgres デプロイメントを更新します。次のコマンドを実行して、hugepages パラメーターを 512Mi に設定します。

    oc patch deployment search-postgres --type json -p '[{"op": "add", "path": "/spec/template/spec/containers/0/resources/limits/hugepages-2Mi", "value":"512Mi"}]'
    Copy to Clipboard Toggle word wrap
  3. Pod のメモリー使用量を確認する前に、search-postgres Pod が Running 状態にあることを確認します。以下のコマンドを実行します。

    oc get pod <your-postgres-pod-name>  -o jsonpath="Status: {.status.phase}"
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して、search-postgres Pod のメモリー使用量を確認します。

    oc get pod <your-postgres-pod-name> -o jsonpath='{.spec.containers[0].resources.limits.hugepages-2Mi}'
    Copy to Clipboard Toggle word wrap

512Mi の値が表示されます。

1.3.3.2. コンソール機能は Firefox の以前のバージョンで表示されない場合がある

以前のバージョンの Firefox のダークテーマスタイルには、既知の問題があります。コンソールの互換性を最適化するため、最新版にアップグレードしてください。

詳しくは、サポートされているブラウザー を参照してください。

1.3.3.3. searchcustomization におけるストレージサイズの制限

searchcustomization CR でストレージサイズを更新する場合、PVC 設定は変更されません。ストレージサイズを更新する必要がある場合は、以下のコマンドで PVC (<storageclassname>-search-redisgraph-0) を更新します。

oc edit pvc <storageclassname>-search-redisgraph-0
Copy to Clipboard Toggle word wrap

1.3.3.4. 検索クエリーの解析エラー

環境が大規模になり、スケーリングのためにさらに多くのテストが必要になると、検索クエリーがタイムアウトになり、解析エラーメッセージが表示されることがあります。このエラーは、検索クエリーを 30 秒間待機した後に表示されます。

次のコマンドでタイムアウト時間を延長します。

kubectl annotate route multicloud-console haproxy.router.openshift.io/timeout=Xs
Copy to Clipboard Toggle word wrap

1.3.3.5. クラスターセットのネームスペースバインディングを編集できない

admin または bind ロールを使用してクラスターセットの namespace バインディングを編集すると、次のメッセージのようなエラーが発生する場合があります。

ResourceError: managedclustersetbindings.cluster.open-cluster-management.io "<cluster-set>" is forbidden: User "<user>" cannot create/delete resource "managedclustersetbindings" in API group "cluster.open-cluster-management.io" in the namespace "<namespace>".

この問題を解決するには、バインドする namespace で ManagedClusterSetBinding リソースを作成または削除する権限も持っていることを確認してください。ロールバインディングでは、クラスターセットを namespace にバインドすることしかできません。

1.3.3.6. Hosted Control Plane クラスターをプロビジョニングした後、水平スクロールが機能しない

Hosted Control Plane クラスターをプロビジョニングした後、ClusterVersionUpgradeable パラメーターが長すぎると、Red Hat Advanced Cluster Management コンソールのクラスター概要を水平方向にスクロールできない場合があります。結果として、非表示のデータを表示することはできません。

この問題を回避するには、ブラウザーのズームコントロールを使用してズームアウトするか、Red Hat Advanced Cluster Management コンソールウィンドウのサイズを大きくするか、テキストをコピーして別の場所に貼り付けます。

1.3.3.7. EditApplicationSet 拡張機能の繰り返しを設定する

複数のラベル式を追加するか、ApplicationSet のクラスターセレクターに入ろうとすると、"Expand to enter expression" メッセージが繰り返し表示されることがあります。この問題にもかかわらず、クラスターの選択を入力することはできます。

1.3.4. アプリケーションの既知の問題と制限事項

アプリケーション管理に関する既知の問題を確認します。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、OpenShift Container Platform の既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

アプリケーションライフサイクルコンポーネントは、次の既知の問題を参照してください。

1.3.4.1. Argo CD プルモデルは OpenShift Container Platform 4.17 クラスターでは動作しない

OpenShift Container Platform 4.17 を使用している場合、search serviceaccount に、ユーザーに必要なパーミッションの一部が欠落しています。そのため、Argo CD プルモデルリソース同期コントローラーは、検索 API からアプリケーションリソースリストにアクセスできません。

この問題を回避するには、以下の手順を実行します。

  1. 次のコマンドを実行して、search clusterRole にパッチを適用します。

     oc patch clusterrole search --type='json' -p='[{"op":"add", "path":"/rules/-", "value": {"verbs":["impersonate"], "apiGroups":["authentication.k8s.io"], "resources":["userextras/authentication.kubernetes.io/credential-id", "userextras/authentication.kubernetes.io/node-name", userextras/authentication.kubernetes.io/node-uid]}}]'
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、search-api Pod を停止します。

    oc scale deployment search-api -n open-cluster-management --replicas=0
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、search-api Pod を起動します。

    oc scale deployment search-api -n open-cluster-management  --replicas=1
    Copy to Clipboard Toggle word wrap

アプリケーションアドオンコンポーネントは、Kubernetes Lease API である leases.coordination.k8s.io を使用しますが、OpenShift Container Platform 3.11 を使用している場合にはこの API はありません。Kubernetes Lease API は Kubernetes 1.14 で導入されており、OpenShift Container Platform 3.11 は Kubernetes バージョン 1.11 をバンドルしています。

この問題を解決するには、以下の Kubernetes Lease API CustomResourceDefinition を OpenShift Container Platform 3.11 マネージドクラスターに手動で適用します。

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: leases.coordination.k8s.io
spec:
  group: coordination.k8s.io
  names:
    kind: Lease
    listKind: LeaseList
    plural: leases
    singular: lease
    shortNames:
    - ls
  scope: Namespaced
  versions:
  - name: v1
    served: true    storage: true    schema:
      openAPIV3Schema:
        description: Lease defines a lease concept.
        type: object
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            properties:
              acquireTime:
                format: date-time
                type: string
              holderIdentity:
                type: string
              leaseDurationSeconds:
                format: int64
                type: integer
              leaseTransitions:
                format: int64
                type: integer
              renewTime:
                format: date-time
                type: string
            required:
            - holderIdentity
            - leaseDurationSeconds
            - renewTime
        required:
        - kind
        - metadata
        - spec
  additionalPrinterColumns:
  - JSONPath: .metadata.creationTimestamp
    name: Age
    type: date
  subresources:
    status: {}
Copy to Clipboard Toggle word wrap

注意: OpenShift Container Platform 3.11 の Red Hat Advanced Cluster Management のサポートは非推奨です。

1.3.4.3. サービスアカウントには自動シークレットがない

IBM VMware や Bare Metal などの一部のクラウドプロバイダーによってプロビジョニングされた Red Hat OpenShift Container Platform 4.15 でサービスアカウントを作成すると、アカウントによってシークレットが自動的に作成されません。したがって、Red Hat Advanced Cluster Management gitopsCluster コントローラーは、Argo CD プッシュモデルのマネージドクラスターシークレットを生成できません。

この問題は、AWS によってプロビジョニングされた Red Hat OpenShift Container Platform 4.15 では発生しません。ただし、他のクラウドプロバイダーによってプロビジョニングされた Red Hat OpenShift Container Platform 4.15 でもこの問題が発生する可能性があります。この問題は、Red Hat Advanced Cluster Management 2.10.3 および Red Hat Advanced Cluster Management 2.9.4 で発生します。

この問題を回避するには、シークレットを手動で作成し、それをサービスアカウント open-cluster-management-agent-addon/application-manager にアタッチする必要があります。これを行うには、次の手順を実行します。

  1. ターゲットのマネージドクラスターにログインします。
  2. 次のシークレットテンプレートを実行してシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: application-manager-dockercfg
      namespace: open-cluster-management-agent-addon
      annotations:
        kubernetes.io/service-account.name: application-manager
        openshift.io/token-secret.name: application-manager-dockercfg
        openshift.io/token-secret.value: application-manager-dockercfg
    type: kubernetes.io/service-account-token
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、作成したシークレットからトークンを取得します。

    % oc get secrets -n open-cluster-management-agent-addon application-manager-dockercfg -o yaml
    data:
      token: <token1>
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して data.token をデコードします。

    echo <token1 copied from data.token> |base64 -d
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、トークンを作成したシークレットアノテーションに更新します。

    % oc edit secrets -n open-cluster-management-agent-addon application-manager-dockercfg
    metadata:
      annotations:
        openshift.io/token-secret.value: <paste the decoded token>
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行して、変更されたシークレットをサービスアカウントにリンクします。

    % oc edit sa -n open-cluster-management-agent-addon application-manager
    ....
    secrets:
    - name: application-manager-dockercfg
    Copy to Clipboard Toggle word wrap

シークレットが正常に作成され、サービスアカウントにアタッチされたことを確認するには、次の手順を実行します。

  1. ハブクラスター内のクラスター namespace に移動します。
  2. 次のコマンドを実行して、クラスターシークレットが生成されていることを確認します。

    % oc get secrets -n perf5 perf5-cluster-secret
    NAME                   TYPE     DATA   AGE
    perf5-cluster-secret   Opaque   3      7m40s
    Copy to Clipboard Toggle word wrap

PlacementRule リソースを参照するサブスクリプションアプリケーションを作成した後、サブスクリプション YAML はコンソールの YAML エディターに表示されません。ターミナルを使用してサブスクリプション YAML ファイルを編集します。

Helm Chart を使用すると、Kubernetes シークレットでプライバシーデータを定義し、Helm チャートの value.yaml ファイルでこのシークレットを参照できます。

ユーザー名とパスワードは、参照される Kubernetes シークレットリソース dbsecret によって指定されます。たとえば、以下の value.yaml ファイルの例を参照してください。

credentials:
  secretName: dbsecret
  usernameSecretKey: username
  passwordSecretKey: password
Copy to Clipboard Toggle word wrap

シークレットの依存関係を含む Helm チャートは、Helm バイナリー CLI でのみサポートされます。Operator SDK Helm ライブラリーではサポートされていません。Red Hat Advanced Cluster Management サブスクリプションコントローラーは、Operator SDK Helm ライブラリーを適用して、Helm チャートをインストールおよびアップグレードします。そのため、Red Hat Advanced Cluster Management サブスクリプションは、シークレットの依存関係が含まれる Helm チャートをデプロイできません。

1.3.4.6. Argo CD Push モデルのクラスターシークレットの作成はサポートされません

OpenShift Container Platform 3.11 マネージドクラスター上の Argo CD Push モデルに対してカスタマイズされたクラスターシークレットを作成できません。これは、マネージドサービスアカウントアドオンが OpenShift Container Platform 3.11 マネージドクラスターでサポートされていないために発生します。

1.3.4.7. Argo CD プルモデル ApplicationSet アプリケーションのトポロジーが正しく表示されない

Argo CD プルモデルを使用して ApplicationSet アプリケーションをデプロイし、アプリケーションのリソース名がカスタマイズされている場合、リソース名がクラスターごとに異なって表示される場合があります。これが発生すると、トポロジーではアプリケーションが正しく表示されません。

1.3.4.8. ローカルクラスターは pull モデルのマネージドクラスターとして除外されます

ハブクラスターアプリケーションセットはターゲットマネージドクラスターにデプロイされますが、マネージドハブクラスターであるローカルクラスターはターゲットマネージドクラスターとして除外されます。

その結果、Argo CD アプリケーションが Argo CD プルモデルによってローカルクラスターに伝播される場合に、ローカルクラスターが Argo CD ApplicationSet リソースの配置決定から削除されても、ローカルクラスターの Argo CD アプリケーションは削除されません。

問題を回避し、ローカルクラスターの Argo CD アプリケーションを削除するには、ローカルクラスターの Argo CD アプリケーションから skip-reconcile アノテーションを削除します。以下のアノテーションを参照してください。

annotations:
    argocd.argoproj.io/skip-reconcile: "true"
Copy to Clipboard Toggle word wrap

さらに、Argo CD コンソールの Applications セクションでプルモデルの Argo CD アプリケーションを手動で更新すると、更新は処理されず、Argo CD コンソールの REFRESH ボタンが無効になります。

この問題を回避するには、Argo CD アプリケーションから refresh アノテーションを削除します。以下のアノテーションを参照してください。

annotations:
    argocd.argoproj.io/refresh: normal
Copy to Clipboard Toggle word wrap

1.3.4.9. Argo CD コントローラーと伝播コントローラーは同時に調整する可能性があります

Argo CD コントローラーと伝播コントローラーの両方が同じアプリケーションリソース上で調整し、マネージドクラスター上で異なるデプロイメントモデルからのアプリケーションデプロイメントの重複インスタンスが発生する可能性があります。

Pull モデルを使用してアプリケーションをデプロイする場合、Argo CD argocd.argoproj.io/skip-reconcile アノテーションが ApplicationSet のテンプレートセクションに追加されると、Argo CD コントローラーはこれらのアプリケーションリソースを無視します。

argocd.argoproj.io/skip-reconcile アノテーションは、GitOps operator バージョン 1.9.0 以降でのみ使用できます。競合を防ぐには、プルモデルを実装する前に、ハブクラスターとすべてのマネージドクラスターが GitOps operator バージョン 1.9.0 にアップグレードされるまで待ってください。

1.3.4.10. リソースのデプロイに失敗する

MulticlusterApplicationSetReport にリストされているすべてのリソースは、実際にはマネージドクラスターにデプロイされます。リソースのデプロイに失敗した場合、そのリソースはリソースリストには含まれませんが、原因はエラーメッセージにリストされます。

1.3.4.11. リソースの割り当てには数分かかる場合があります

1,000 を超えるマネージドクラスターと、数百のマネージドクラスターにデプロイされた Argo CD アプリケーションセットがある大規模環境の場合、ハブクラスターでの Argo CD アプリケーションの作成には数分かかる場合があります。次のファイル例に示されているように、アプリケーションセットの clusterDecisionResource ジェネレーターで requeueAfterSecondszero に設定できます。

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: cm-allclusters-app-set
  namespace: openshift-gitops
spec:
  generators:
  - clusterDecisionResource:
      configMapRef: ocm-placement-generator
      labelSelector:
        matchLabels:
          cluster.open-cluster-management.io/placement: app-placement
      requeueAfterSeconds: 0
Copy to Clipboard Toggle word wrap

subscription-admin ロールの ObjectBucket チャネルタイプで許可リストと拒否リストを指定することはできません。他の種類のチャネルでは、サブスクリプションの許可リストと拒否リストによって、デプロイできる Kubernetes リソースとデプロイできない Kubernetes リソースが示されます。

Infrastructure.config.openshift.io API は 3.x では使用できないため、コンソールから Argo ApplicationSet を 3.x OpenShift Container Platform マネージドクラスターにデプロイすることはできません。

1.3.4.13. multicluster_operators_subscription イメージへの変更は自動的に有効にならない

マネージドクラスターで実行している application-manager アドオンは、以前は klusterlet Operator により処理されていましたが、サブスクリプション Operator により処理されるようになりました。サブスクリプション Operator は multicluster-hub で管理されていないため、multicluster-hub イメージマニフェスト ConfigMap の multicluster_operators_subscription イメージへの変更は自動的に有効になりません。

サブスクリプション Operator が使用するイメージが、multicluster-hub イメージマニフェスト ConfigMap の multicluster_operators_subscription イメージを変更することによってオーバーライドされた場合、マネージドクラスターの application-manager アドオンは、サブスクリプション Operator Pod が再起動するまで新しいイメージを使用しません。Pod を再起動する必要があります。

1.3.4.14. サブスクリプション管理者以外はポリシーリソースをデプロイできない

Red Hat Advanced Cluster Management バージョン 2.4 では、デフォルトで policy.open-cluster-management.io/v1 リソースがアプリケーションサブスクリプションによってデプロイされなくなりました。

サブスクリプション管理者は、このデフォルトの動作を変更するためにアプリケーションサブスクリプションをデプロイする必要があります。

詳細は、サブスクリプション管理者としての許可リストおよび拒否リストの作成 を参照してください。以前の Red Hat Advanced Cluster Management バージョンの既存のアプリケーションサブスクリプションによってデプロイされた policy.open-cluster-management.io/v1 リソースは、サブスクリプション管理者がアプリケーションサブスクリプションをデプロイしていない限り、ソースリポジトリーに合わせて調整されません。

1.3.4.15. アプリケーション Ansible フックのスタンドアロンモード

Ansible フックのスタンドアロンモードはサポートされていません。サブスクリプションを使用してハブクラスターに Ansible フックをデプロイするには、次のサブスクリプション YAML を使用できます。

apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
  name: sub-rhacm-gitops-demo
  namespace: hello-openshift
annotations:
  apps.open-cluster-management.io/github-path: myapp
  apps.open-cluster-management.io/github-branch: master
spec:
  hooksecretref:
      name: toweraccess
  channel: rhacm-gitops-demo/ch-rhacm-gitops-demo
  placement:
     local: true
Copy to Clipboard Toggle word wrap

ただし、spec.placement.local:true ではサブスクリプションが standalone モードで実行されているため、この設定では Ansible インストールが作成されない可能性があります。ハブモードでサブスクリプションを作成する必要があります。

  1. local-cluster にデプロイする配置ルールを作成します。次のサンプルを参照してください。ここでの local-cluster: "true" はハブクラスターを指します。

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: <towhichcluster>
      namespace: hello-openshift
    spec:
      clusterSelector:
        matchLabels:
          local-cluster: "true"
    Copy to Clipboard Toggle word wrap
  2. 使用しているサブスクリプションで、作成した配置ルールを参照します。以下のサンプルを参照してください。

    apiVersion: apps.open-cluster-management.io/v1
    kind: Subscription
    metadata:
      name: sub-rhacm-gitops-demo
      namespace: hello-openshift
    annotations:
      apps.open-cluster-management.io/github-path: myapp
      apps.open-cluster-management.io/github-branch: master
    spec:
      hooksecretref:
          name: toweraccess
      channel: rhacm-gitops-demo/ch-rhacm-gitops-demo
      placement:
         placementRef:
            name: <towhichcluster>
            kind: PlacementRule
    Copy to Clipboard Toggle word wrap

両方を適用すると、ハブクラスターに作成された Ansible インスタンスが表示されます。

1.3.4.16. 配置ルールの更新後にアプリケーションがデプロイされない

配置ルールの更新後にアプリケーションがデプロイされない場合は、application-manager Pod が実行されていることを確認します。application-manager は、マネージドクラスターで実行する必要があるサブスクリプションコンテナーです。

oc get pods -n open-cluster-management-agent-addon |grep application-manager を実行して確認できます。

コンソールで kind:pod cluster:yourcluster を検索して、application-manager が実行されているかどうかを確認することもできます。

検証できない場合は、もう一度、クラスターのインポートを試行して検証を行います。

1.3.4.17. サブスクリプション Operator が SCC を作成しない

Red Hat OpenShift Container Platform SCC の詳細は、Security Context Constraints (SCC) の管理 を参照してください。これは、マネージドクラスターで必要な追加設定です。

デプロイメントごとにセキュリティーコンテキストとサービスアカウントが異なります。サブスクリプション Operator は SCC CR を自動的に作成できず、管理者が Pod のパーミッションを制御します。Security Context Constraints (SCC) CR は、関連のあるサービスアカウントに適切なパーミッションを有効化して、デフォルトではない namespace で Pod を作成する必要があります。使用している namespace で SCC CR を手動で作成するには、以下の手順を実行します。

  1. デプロイメントで定義したサービスアカウントを検索します。たとえば、以下の nginx デプロイメントを参照してください。

    nginx-ingress-52edb
    nginx-ingress-52edb-backend
    Copy to Clipboard Toggle word wrap
  2. 使用している namespace に SCC CR を作成して、サービスアカウントに必要なパーミッションを割り当てます。以下の例を参照してください。kind: SecurityContextConstraints が追加されています。

    apiVersion: security.openshift.io/v1
     defaultAddCapabilities:
     kind: SecurityContextConstraints
     metadata:
       name: ingress-nginx
       namespace: ns-sub-1
     priority: null
     readOnlyRootFilesystem: false
     requiredDropCapabilities:
     fsGroup:
       type: RunAsAny
     runAsUser:
       type: RunAsAny
     seLinuxContext:
       type: RunAsAny
     users:
     - system:serviceaccount:my-operator:nginx-ingress-52edb
     - system:serviceaccount:my-operator:nginx-ingress-52edb-backend
    Copy to Clipboard Toggle word wrap

1.3.4.18. アプリケーションチャネルには一意の namespace が必要

同じ namespace に複数のチャネルを作成すると、ハブクラスターでエラーが発生する可能性があります。

たとえば、namespace charts-v1 は、Helm タイプのチャネルとしてインストーラーで使用するので、charts-v1 に追加のチャネルを作成します。一意の namespace でチャネルを作成するようにしてください。すべてのチャネルには個別の namespace が必要ですが、GitHub チャネルは例外で、別 GitHub のチャネルと namespace を共有できます。

1.3.4.19. Ansible Automation Platform ジョブが失敗する

互換性のないオプションを選択すると、Ansible ジョブの実行に失敗します。Ansible Automation Platform は、-cluster-scoped のチャネルオプションが選択されている場合にのみ機能します。これは、Ansible ジョブを実行する必要があるすべてのコンポーネントに影響します。

Red Hat Ansible Automation Platform Operator は、プロキシー対応の OpenShift Container Platform クラスターの外部にある Ansible Automation Platform にアクセスできません。解決するには、プロキシー内に Ansible Automation Platform をインストールできます。Ansible Automation Platform によって提供されるインストール手順を参照してください。

1.3.4.21. アプリケーション名の要件

アプリケーション名は 37 文字を超えることができません。この数を超えた場合、アプリケーションのデプロイメント時に以下のエラーが表示されます。

status:
  phase: PropagationFailed
  reason: 'Deployable.apps.open-cluster-management.io "_long_lengthy_name_" is invalid: metadata.labels: Invalid value: "_long_lengthy_name_": must be no more than 63 characters/n'
Copy to Clipboard Toggle word wrap

1.3.4.22. アプリケーションコンソールテーブルの制限事項

コンソールのさまざまな アプリケーション の表に対する以下の制限を確認してください。

  • Overview ページの Applications の表と、Advanced configuration ページの Subscriptions の表にある Clusters の列では、アプリケーションリソースのデプロイ先のクラスター数が表示されます。アプリケーションは、ローカルクラスターのリソースで定義されているため、実際のアプリケーションリソースがローカルクラスターにデプロイされているかどうかにかかわらず、ローカルのクラスターは検索結果に含まれます。
  • SubscriptionsAdvanced configuration 表にある Applications の列には、サブスクリプションを使用するアプリケーションの合計数が表示されますが、サブスクリプションが子アプリケーションをデプロイする場合には、これらも検索結果に含まれます。
  • ChannelsAdvanced configuration 表にある Subscriptions の列には、対象のチャネルを使用するローカルクラスター上のサブスクリプション合計数が表示されます。ただし、他のサブスクリプションがデプロイするサブスクリプションは検索結果には含まれますが、ここには含まれません。

1.3.4.23. アプリケーションコンソールトポロジーのフィルタリング機能がない

2.9 では ApplicationConsoleTopology が変更されています。コンソールの Topology ページにフィルタリング機能はありません。

1.3.4.24. 許可リストと拒否リストがオブジェクトストレージアプリケーションで機能しない

allow リストおよび deny リストの機能は、オブジェクトストレージアプリケーションのサブスクリプションでは機能しません。

1.3.5. 可観測性関連の既知の問題

Red Hat Advanced Cluster Management for Kubernetes の既知の問題を確認してください。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

Kubernetes の制限が原因で、復元されたハブクラスター内の Observatorium API ゲートウェイ Pod には、バックアップおよび復元手順の後に古いテナントデータが含まれる可能性があります。制限の詳細は Mounted ConfigMaps are updated automatically を参照してください。

その結果、Observatorium API と Thanos ゲートウェイはコレクターからのメトリクスを拒否し、Red Hat Advanced Cluster Management Grafana ダッシュボードにはデータが表示されません。

Observatorium API ゲートウェイ Pod ログから、次のエラーを参照してください。

level=error name=observatorium caller=logchannel.go:129 msg="failed to forward metrics" returncode="500 Internal Server Error" response="no matching hashring to handle tenant\n"
Copy to Clipboard Toggle word wrap

Thanos は、以下のエラーを出して Pod ログを受信します。

caller=handler.go:551 level=error component=receive component=receive-handler tenant=xxxx err="no matching hashring to handle tenant" msg="internal server error"
Copy to Clipboard Toggle word wrap

この問題を解決するには、次の手順を参照してください。

  1. observability-observatorium-api デプロイメントインスタンスを N から 0 にスケールダウンします。
  2. observability-observatorium-api デプロイメントインスタンスを 0 から N にスケールアップします。

注記: デフォルトでは N = 2 ですが、一部のカスタム設定環境では 2 より大きくなる場合があります。

これにより、すべての Observatorium API ゲートウェイ Pod が正しいテナント情報で再起動され、コレクターからのデータが 5 ~ 10 分以内に Grafana に表示され始めます。

Red Hat Advanced Cluster Management 2.9 以降では、定義済みの Red Hat Advanced Cluster Management ハブクラスター namespace でラベルを使用する必要があります。openshift.io/cluster-monitoring: "true" のラベルを指定して、Cluster Monitoring Operator はメトリクスの namespace を取得します。

Red Hat Advanced Cluster Management 2.9 がデプロイされるか、インストールが 2.9 にアップグレードされると、Red Hat Advanced Cluster Management Observability ServiceMonitors および PrometheusRule リソースが openshift-monitoring namespace に存在しなくなります。

1.3.5.3. プロキシー設定のサポートなし

可観測性アドオンの Prometheus AdditionalAlertManagerConfig リソースは、プロキシー設定をサポートしていません。可観測性アラート転送機能を無効にする必要があります。

アラート転送を無効にするには、次の手順を実行します。

  1. MultiClusterObservability リソースに移動します。
  2. mco-disabling-alerting パラメーターの値を trueに更新します。

自己署名 CA 証明書を使用する HTTPS プロキシーはサポートされていません。

1.3.5.4. サービスレベルの概要ダッシュボードでローカルクラスターが重複する

さまざまなハブクラスターが同じ S3 ストレージを使用して Red Hat Advanced Cluster Management の可観測性をデプロイする場合、重複する local-clustersKubernetes/Service-Level Overview/API Server ダッシュボード内で検出および表示できます。重複クラスターは、Top ClustersNumber of clusters that has exceeded the SLO、および Number of clusters that are meeting the SLO のパネル内の結果に影響を及ぼします。local-clusters は、共有 S3 ストレージに関連付けられた一意のクラスターです。複数の local-clusters がダッシュボード内で表示しないようにするには、一意のハブクラスターごとに、ハブクラスター専用の S3 バケットを使用して可観測性をデプロイすることが推奨されます。

1.3.5.5. 可観測性エンドポイント Operator がイメージのプルに失敗する

可観測性エンドポイント Operator は、MultiClusterObservability CustomResource (CR) へのデプロイにプルシークレットを作成したにもかかわらず、open-cluster-management-observability namespace にプルシークレットがない場合に問題が発生します。新しいクラスターをインポートする場合、または Red Hat Advanced Cluster Management で作成された Hive クラスターをインポートする場合は、マネージドクラスターにプルイメージシークレットを手動で作成する必要があります。

詳細は、可観測性の有効化 を参照してください。

1.3.5.6. ROKS クラスターにデータがない

Red Hat Advanced Cluster Management の可観測性は、組み込みダッシュボードで、ROKS クラスターのデータが表示されないパネルがあります。これは、ROKS が、管理対象サーバーからの API サーバーメトリクスを公開しないためです。以下の Grafana ダッシュボードには、Kubernetes/API serverKubernetes/Compute Resources/WorkloadKubernetes/Compute Resources/Namespace(Workload) の ROKS クラスターをサポートしないパネルが含まれます。

1.3.5.7. ROKS クラスターに etcd データがない

ROKS クラスターの場合に、Red Hat Advanced Cluster Management の可観測性のダッシュボードの etcd パネルでデータが表示されません。

1.3.5.8. Grafana コンソールでメトリクスが利用できない

  • Grafana コンソールでアノテーションのクエリーに失敗する:

    Grafana コンソールで特定のアノテーションを検索すると、トークンの有効期限が切れているために、以下のエラーメッセージが表示されることがあります。

    "Annotation Query Failed"

    ブラウザーを更新し、ハブクラスターにログインしていることを確認します。

  • rbac-query-proxy Pod のエラー:

    managedcluster リソースにアクセス権がないために、プロジェクトでクラスターのクエリーを実行すると以下のエラーが表示される場合があります。

    no project or cluster found

    ロールのパーミッションを確認し、適切に更新します。詳細は、ロールベースのアクセス制御 を参照してください。

1.3.5.9. マネージドクラスターでの Prometheus データ喪失

デフォルトでは、OpenShift の Prometheus は一時ストレージを使用します。Prometheus は、再起動されるたびにすべてのメトリックデータを失います。

Red Hat Advanced Cluster Management が管理する OpenShift Container Platform マネージドクラスターで可観測性を有効または無効にすると、可観測性エンドポイント Operator は、ローカルの Prometheus を自動的に再起動する alertmanager 設定を追加して cluster-monitoring-config ConfigMap を更新します。

1.3.5.10. out-of-order サンプルの取り込みエラー

Observability receive Pod では、以下のエラーをレポートします。

Error on ingesting out-of-order samples
Copy to Clipboard Toggle word wrap

このエラーメッセージは、マネージドクラスターがメトリクス収集間隔中に送信した時系列データが、以前の収集間隔中に送信した時系列データよりも古いことを意味します。この問題が発生した場合には、データは Thanos レシーバーによって破棄され、Grafana ダッシュボードに表示されるデータにギャップが生じる場合があります。エラーが頻繁に発生する場合は、メトリックコレクションの間隔をより大きい値に増やすことが推奨されます。たとえば、間隔を 60 秒に増やすことができます。

この問題は、時系列の間隔が 30 秒などの低い値に設定されている場合にのみ見られます。メトリクス収集の間隔がデフォルト値の 300 秒に設定されている場合には、この問題は発生しません。

1.3.5.11. アップグレード後に Grafana のデプロイが失敗する

2.6 より前の以前のバージョンでデプロイされた grafana-dev インスタンスがあり、環境を 2.6 にアップグレードすると、grafana-dev は機能しません。次のコマンドを実行して、既存の grafana-dev インスタンスを削除する必要があります。

./setup-grafana-dev.sh --clean
Copy to Clipboard Toggle word wrap

次のコマンドでインスタンスを再作成します。

./setup-grafana-dev.sh --deploy
Copy to Clipboard Toggle word wrap

1.3.5.12. klusterlet-addon-search Pod が失敗する

メモリー制限に達したため、klusterlet-addon-search Pod が失敗します。マネージドクラスターで klusterlet-addon-search デプロイメントをカスタマイズして、メモリーの失われると制限を更新する必要があります。ハブクラスターで、search-collector という名前の ManagedclusterAddon カスタムリソースを編集します。search-collector に以下のアノテーションを追加し、メモリー addon.open-cluster-management.io/search_memory_request=512Mi および addon.open-cluster-management.io/search_memory_limit=1024Mi を更新します。

たとえば、foobar という名前のマネージドクラスターがある場合、次のコマンドを実行して、メモリーリクエストを 512Mi に変更し、メモリー制限を 1024Mi に変更します。

oc annotate managedclusteraddon search-collector -n foobar \
addon.open-cluster-management.io/search_memory_request=512Mi \
addon.open-cluster-management.io/search_memory_limit=1024Mi
Copy to Clipboard Toggle word wrap

1.3.5.13. disableHubSelfManagement を有効にすると、Grafana ダッシュボードのリストが空になる

mulitclusterengine カスタムリソースで disableHubSelfManagement パラメーターが true に設定されている場合、Grafana ダッシュボードには空のラベルリストが表示されます。ラベルリストを表示するには、パラメーターを false に設定するか、パラメーターを削除する必要があります。詳細は、disableHubSelfManagement を参照してください。

1.3.5.13.1. エンドポイント URL に完全修飾ドメイン名 (FQDN) を含めることはできません

endpoint パラメーターに FQDN またはプロトコルを使用すると、可観測性 Pod は有効になりません。次のエラーメッセージが表示されます。

Endpoint url cannot have fully qualified paths
Copy to Clipboard Toggle word wrap

プロトコルなしで URL を入力します。endpoint 値は、シークレットの次の URL に似ている必要があります。

endpoint: example.com:443
Copy to Clipboard Toggle word wrap
1.3.5.13.2. Grafana のダウンサンプリングデータの不一致

履歴データをクエリーしようとしたときに、計算されたステップ値とダウンサンプリングされたデータの間に不一致がある場合、結果は空になります。たとえば、計算されたステップ値が 5m で、ダウンサンプリングされたデータが 1 時間間隔の場合、データは Grafana から表示されません。

この不一致は、URL クエリーパラメーターが Thanos Query フロントエンドデータソースを介して渡される必要があるために発生します。その後、データが欠落している場合、URL クエリーは他のダウンサンプリングレベルに対して追加のクエリーを実行できます。

Thanos Query フロントエンドデータソース設定を手動で更新する必要があります。以下の手順を実行します。

  1. Query フロントエンドデータソースに移動します。
  2. クエリーパラメーターを更新するには、Misc セクションをクリックします。
  3. Custom query parameters フィールドから、max_source_resolution=auto を選択します。
  4. データが表示されていることを確認するには、Grafana ページを更新します。

Grafana ダッシュボードからクエリーデータが表示されます。

1.3.5.14. メトリックコレクターがプロキシー設定を検出しない

addonDeploymentConfig を使用して設定したマネージドクラスター内のプロキシー設定は、メトリックコレクターによって検出されません。回避策として、マネージドクラスター ManifestWork を削除してプロキシーを有効化できます。ManifestWork を削除すると、addonDeploymentConfig の変更が強制的に適用されます。

1.3.5.15. カスタム CA バンドルを使用した HTTPS プロキシーはサポートされていない

カスタム CA バンドルが必要な場合、マネージドクラスターのプロキシー設定は機能しません。

1.3.6. ガバナンス関連の既知の問題

ガバナンスに関する既知の問題を確認してください。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、OpenShift Container Platform の既知の問題 を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

ガバナンスリソースが適切にクリーンアップされないコンポーネントが false に設定されているか、MultiClusterHub Operator で無効になっている場合、ガバナンスコンポーネントは、管理するアドオンをクリーンアップする前に削除されます。

1.3.6.2. Red Hat Advanced Cluster Management からログアウトできない

外部アイデンティティープロバイダーを使用して Red Hat Advanced Cluster Management にログインする場合は、Red Hat Advanced Cluster Management からログアウトできない可能性があります。これは、Red Hat Advanced Cluster Management に IBM Cloud および Keycloak をアイデンティティープロバイダーとしてインストールして使用する場合に発生します。

Red Hat Advanced Cluster Management からログアウトするには、外部アイデンティティープロバイダーからログアウトしておく必要があります。

1.3.6.3. Gatekeeper Operator のインストールに失敗する

Red Hat OpenShift Container Platform バージョン 4.9 に gatekeeper Operator をインストールする場合、インストールに失敗します。OpenShift Container Platform をバージョン 4.9.0. にアップグレードする前に、gatekeeper Operator をバージョン 0.2.0 にアップグレードする必要があります。詳細は、gatekeeper および gatekeeper Operator のアップグレード を参照してください。

1.3.6.4. namespace が Terminating 状態で停止している場合に、設定ポリシーが準拠と表示される

設定ポリシーで complianceType のパラメーターに mustnothaveremediationAction のパラメーターに enforce が設定されている場合に、ポリシーは Kubernetes API に削除要求が送信されてから、準拠と表示されます。そのため、ポリシーが準拠と表示されているにも関わらず、Kubernetes オブジェクトは、Terminating の状態のままになってしまう可能性があります。

1.3.6.5. ポリシーでデプロイされた Operator が ARM をサポートしない

ARM 環境へのインストールはサポートされますが、ポリシーを使用してデプロイされる Operator は ARM 環境をサポートしない可能性があります。Operator をインストールする以下のポリシーは ARM 環境をサポートしません。

1.3.6.6. ConfigurationPolicy CRD が終了中にスタックする

KlusterletAddonConfig でポリシーコントローラーを無効にするか、クラスターをデタッチして、管理対象クラスターから config-policy-controller アドオンを削除すると、ConfigurationPolicy CRD が中断状態でスタックする場合があります。ConfigurationPolicy CRD が中断状態でスタックしている場合に、アドオンを後で再インストールしても、新しいポリシーがクラスターに追加されない可能性があります。次のエラーが表示されることもあります。

template-error; Failed to create policy template: create not allowed while custom resource definition is terminating
Copy to Clipboard Toggle word wrap

次のコマンドを使用して、CRD がスタックしているかどうかを確認します。

oc get crd configurationpolicies.policy.open-cluster-management.io -o=jsonpath='{.metadata.deletionTimestamp}'
Copy to Clipboard Toggle word wrap

削除のタイムスタンプがリソースにある場合に、CRD はスタックします。この問題を解決するには、クラスターに残っている設定ポリシーからすべてのファイナライザーを削除します。マネージドクラスターで次のコマンドを使用し、<cluster-namespace> をマネージドクラスターの namespace に置き換えます。

oc get configurationpolicy -n <cluster-namespace> -o name | xargs oc patch -n <cluster-namespace> --type=merge -p '{"metadata":{"finalizers": []}}'
Copy to Clipboard Toggle word wrap

設定ポリシーリソースはクラスターから自動的に削除され、CRD は中断状態を終了します。アドオンがすでに再インストールされている場合には、CRD は削除タイムスタンプなしで自動的に再作成されます。

1.3.6.7. 既存の設定ポリシーを変更するときに PruneObjectBehavior が機能しない

既存の設定ポリシーを変更するときに pruneObjectBehavior が機能しないpruneObjectBehavior が機能しない可能性がある以下の理由を確認してください。

  • 設定ポリシーで pruneObjectBehaviorDeleteAll または DeleteIfCreated に設定すると、変更前に作成された古いリソースは正しく消去されません。設定ポリシーを削除すると、ポリシーの作成およびポリシーの更新による新しいリソースのみが追跡および削除されます。
  • pruneObjectBehaviorNone に設定するか、パラメーター値を設定しない場合、マネージドクラスター上で古いオブジェクトが意図せずに削除される可能性があります。具体的には、これはユーザーがテンプレート内の namenamespacekind、または apiversion を変更したときに発生します。パラメーターフィールドは、object-templates-raw または namespaceSelector のパラメーターが変更されると動的に変更できます。

1.3.6.8. ポリシーステータスは、適用時に更新が繰り返されることを示している

ポリシーが remediationAction: enforce に設定されていて、繰り返し更新されている場合、Red Hat Advanced Cluster Management コンソールには、更新が成功しても繰り返し違反が表示されます。このエラーについては、次の 2 つの考えられる原因と解決策を参照してください。

  • 別のコントローラーまたはプロセスも、異なる値でオブジェクトを更新しています。

    この問題を解決するには、ポリシーを無効にして、ポリシーの objectDefinition とマネージドクラスターのオブジェクトの違いを比較します。値が異なる場合は、別のコントローラーまたはプロセスが値を更新している可能性があります。オブジェクトの metadata を確認して、値が異なる理由を特定してください。

  • ポリシーの適用時に Kubernetes がオブジェクトを処理するため、ConfigurationPolicyobjectDefinition が一致しません。

    この問題を解決するには、ポリシーを無効にして、ポリシーの objectDefinition とマネージドクラスターのオブジェクトの違いを比較します。キーが異なるか欠落している場合、Kubernetes は、デフォルト値または空の値を含むキーを削除するなど、キーをオブジェクトに適用する前に処理した可能性があります。

    注記: pruneObjectBehaviorNone 以外に設定されている場合、ポリシーを無効にするとオブジェクトがクリーンアップされます。この場合、pruneObjectBehaviorNone に設定して、ポリシーが無効になった後もオブジェクトが存在するようにします。

たとえば、Secret リソース内の stringData マップは、Kubernetes によって、base64 でエンコードされた値を持つ data に変換されます。stringData を使用する代わりに、文字列の代わりに base64 でエンコードされた値を含む data を直接使用します。

1.3.6.9. Pod セキュリティーポリシーは OpenShift Container Platform 4.12 以降ではサポートされません

Pod セキュリティーポリシーのサポートは、OpenShift Container Platform 4.12 以降、および Kubernetes v1.25 以降から削除されました。PodSecurityPolicy リソースを適用すると、次の非準拠メッセージを受け取る場合があります。

violation - couldn't find mapping resource with kind PodSecurityPolicy, please check if you have CRD deployed
Copy to Clipboard Toggle word wrap

1.3.6.10. ポリシーテンプレート名が重複すると、一貫性のない結果が生じる

同じポリシーテンプレート名でポリシーを作成すると、検出されない一貫性のない結果が返されますが、原因がわからない場合があります。たとえば、create-pod という名前の複数の設定ポリシーを含むポリシーを定義すると、一貫性のない結果が発生します。Best practice: ポリシーテンプレートに重複した名前を使用しないようにします。

MultiClusterHub オブジェクトでガバナンスデプロイメントを無効にすると、デプロイメントはエラーなしでクリーンアップされません。次の手順を実行してガバナンスを無効にし、デプロイメントもクリーンアップされるようにします。

  1. マネージドクラスターの KlusterletAddonConfigpolicyController を無効にします。すべてのマネージドクラスターに対してこれを行う場合は、次のコマンドを実行します。

    for CLUSTER in $(oc get managedclusters -o jsonpath='{.items[].metadata.name}'); do
      oc patch -n ${CLUSTER} klusterletaddonconfig ${CLUSTER} --type=merge --patch='{"spec":{"policyController":{"enabled":false}}}'
    done
    Copy to Clipboard Toggle word wrap
  2. ローカルクラスターの場合のみ: ローカルクラスターの governance-policy-framework-uninstall Pod が CrashLoopBackOff にある場合は、ローカルクラスターの ManifestWork を削除し、ManagedClusterAddon のファイナライザーを削除します。以下のコマンドを実行します。

    oc delete manifestwork -n local-cluster -l open-cluster-management.io/addon-name=governance-policy-framework
    oc patch managedclusteraddon -n local-cluster governance-policy-framework --type=merge --patch='{"metadata":{"finalizers":[]}}'
    Copy to Clipboard Toggle word wrap
  3. 必要に応じて、MultiClusterHub オブジェクトの spec.overrides セクションの grc 要素を false に設定して、ガバナンスをグローバルに無効にします。以下のコマンドを実行します。

    oc edit multiclusterhub <name> -n <namespace>
    Copy to Clipboard Toggle word wrap
  4. ローカルクラスターの場合のみ: ローカルクラスターポリシーがある場合は、次のコマンドを実行してポリシーを削除できます。

    oc delete policies -n local-cluster --all
    Copy to Clipboard Toggle word wrap
  5. KlusterletAddonConfig でガバナンスを再度有効にするには、MultiClusterHubspec.overrides セクションの grc 要素を再度有効にします。以下のコマンドを実行します。

    for CLUSTER in $(oc get managedclusters -o jsonpath='{.items[].metadata.name}'); do
      oc patch -n ${CLUSTER} klusterletaddonconfig ${CLUSTER} --type=merge --patch='{"spec":{"policyController":{"enabled":true}}}'
    done
    Copy to Clipboard Toggle word wrap
  6. デプロイが失敗した場合、governance-policy-addon-controller のリースが失効している可能性があります。次のコマンドを使用してリースを削除します。

    oc delete lease governance-policy-addon-controller-lock -n <namespace>
    Copy to Clipboard Toggle word wrap

1.3.6.12. テンプレートエラーによりオブジェクトが削除されました

設定ポリシー内の構文が正しくないなど、テンプレートエラーがある場合、オブジェクトは削除されます。削除されたオブジェクトを正しい構文で再作成します。

1.3.6.13. ポリシーの自動化用に重複した Ansible ジョブが作成される

Run once モードおよび無効に設定された PolicyAutomation がある場合は、追加の Ansible ジョブが作成されます。追加の Ansible ジョブを削除できます。以下の手順を実行します。

  1. 次のコマンドを実行して、Ansible ジョブリストを表示します。

    oc get ansiblejob -n {namespace}
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを使用して、重複した Ansible ジョブを削除します。

    oc delete ansiblejob {ansiblejob name} -n {namespace}
    Copy to Clipboard Toggle word wrap

1.3.7. ネットワーク関連の既知の問題

Submariner の既知の問題を確認してください。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。

Red Hat OpenShift Container Platform クラスターについては、https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.12/html/release_notes/ocp-4-12-release-notes#ocp-4-12-known-issues を参照してください。

非推奨と削除の詳細は、非推奨と削除 を参照してください。

1.3.7.1. Submariner の既知の問題

ネットワーク機能の使用中に発生する可能性がある次の既知の問題と制限事項を参照してください。

1.3.7.1.1. ClusterManagementAddon submariner アドオンを使用しないと失敗する

バージョン 2.8 以前の場合、Red Hat Advanced Cluster Management をインストールするときに、Operator Lifecycle Manager を使用して submariner-addon コンポーネントもデプロイします。MultiClusterHub カスタムリソースを作成しなかった場合、submariner-addon Pod はエラーを送信し、Operator はインストールできません。

ClusterManagementAddon カスタムリソース定義がないため、次の通知が発生します。

graceful termination failed, controllers failed with error: the server could not find the requested resource (post clustermanagementaddons.addon.open-cluster-management.io)
Copy to Clipboard Toggle word wrap

ClusterManagementAddon リソースは cluster-manager デプロイメントによって作成されますが、このデプロイメントが使用可能になるのは MultiClusterEngine コンポーネントがクラスターにインストールされてからです。

MultiClusterHub カスタムリソースの作成時にクラスター上ですでに使用可能な MultiClusterEngine リソースが存在しない場合、MultiClusterHub Operator は MultiClusterEngine インスタンスと必要な Operator をデプロイし、前のエラーを解決します。

submariner-addon コンポーネントが MultiClusterHub (MCH) Operator 内で false に設定されている場合、submariner-addon ファイナライザーはマネージドクラスターリソースに対して適切にクリーンアップされません。ファイナライザーが適切にクリーンアップされないため、ハブクラスター内で submariner-addon コンポーネントが無効になりません。

Submariner は、Red Hat Advanced Cluster Management が管理できるすべてのインフラストラクチャープロバイダーでサポートされているわけではありません。サポートされているプロバイダーの一覧は、Red Hat Advanced Cluster Management のサポートマトリックス を参照してください。

1.3.7.1.4. Submariner インストール計画の制限

Submariner のインストール計画は、全体的なインストール計画の設定に準拠していません。したがって、Operator 管理画面では、Submariner インストール計画は制御できません。デフォルトでは、Submariner インストール計画は自動的に適用され、Submariner アドオンは、インストールされている Red Hat Advanced Cluster Management のバージョンに対応する利用可能な最新バージョンに常に更新されます。この動作を変更するには、カスタマイズされた Submariner サブスクリプションを使用する必要があります。

1.3.7.1.5. 限定的なヘッドレスサービスのサポート

Globalnet を使用する場合、セレクターを使用しないヘッドレスサービスのサービスディスカバリーはサポートされません。

1.3.7.1.6. NAT が有効な場合に VXLAN を使用したデプロイはサポートされていない

NAT 以外のデプロイメントのみが VXLAN ケーブルドライバーを使用した Submariner デプロイメントをサポートします。

1.3.7.1.7. OVN Kubernetes には OCP 4.11 以降が必要

OVN Kubernetes CNI ネットワークを使用している場合は、Red Hat OpenShift 4.11 以降が必要です。

1.3.7.1.8. 自己署名証明書により、ブローカーに接続できない場合がある

ブローカーの自己署名証明書により、結合されたクラスターがブローカーに接続できない場合があります。接続は証明書の検証エラーで失敗します。関連する SubmarinerConfig オブジェクトで InsecureBrokerConnectiontrue に設定すると、ブローカー証明書の検証を無効にできます。以下の例を参照してください。

apiVersion: submarineraddon.open-cluster-management.io/v1alpha1
kind: SubmarinerConfig
metadata:
   name: submariner
   namespace: <managed-cluster-namespace>
spec:
   insecureBrokerConnection: true
Copy to Clipboard Toggle word wrap
1.3.7.1.9. Submariner は OpenShift SDN または OVN Kubernetes のみサポート

Submariner は、OpenShift SDN または OVN-Kubernetes Container Network Interface (CNI) ネットワークプロバイダーを使用する Red Hat OpenShift Container Platform クラスターのみをサポートします。

1.3.7.1.10. Microsoft Azure クラスターでのコマンド制限

subctl diagnose firewall inter-cluster コマンドは、Microsoft Azure クラスターでは機能しません。

1.3.7.1.11. カスタム CatalogSource または Subscription で自動アップグレードが機能しない

Red Hat Advanced Cluster Management for Kubernetes がアップグレードされると、Submariner は自動的にアップグレードされます。カスタムの CatalogSource または Subscription を使用している場合、自動アップグレードは失敗する可能性があります。

マネージドクラスターに Submariner をインストールするときに自動アップグレードが確実に機能するようにするには、各マネージドクラスターの SubmarinerConfig カスタムリソースで spec.subscriptionConfig.channel フィールドを stable-0.15 に設定する必要があります。

ハブクラスター上のマネージドクラスターのブローカーシークレットが見つからないため、OpenShift Container Platform 4.15 以降のハブクラスターを実行している VMware vSphere で Submariner アドオンのインストールが失敗します。マネージドクラスターの submariner-operator namespace には submariner-addon Pod のみが作成され、コンソールにはラベルが付いていないゲートウェイが表示されます。

ClusterSet ブローカー namespace 内のマネージドクラスターごとにシークレットを手動で作成することで、この問題を回避できます。シークレットを手動で作成するには、次の手順を実行します。

  1. ハブクラスターにログインします。
  2. YAML ファイルを作成し、次のテンプレートを追加します。必要に応じて値を置き換えます。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <ManagedClusterName>-broker
      namespace: <ClustersetName>-broker
      annotations:
        kubernetes.io/service-account.name: <ManagedClusterName>
    type: kubernetes.io/service-account-token
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを実行して、YAML ファイルを適用します。

    oc apply
    Copy to Clipboard Toggle word wrap

1.3.8. Multicluster global hub Operator の既知の問題

Multicluster Global Hub Operator の既知の問題を確認します。以下のリストには、このリリースの既知の問題、または以前のリリースから持ち越された既知の問題が記載されています。OpenShift Container Platform クラスターは、OpenShift Container Platform の既知の問題 を参照してください。

1.3.8.1. マネージドクラスターは表示されますが、カウントされない

マネージドクラスターが正常に作成されなかった場合、つまり、clusterclaim id.k8s.io がマネージドクラスターに存在せず、ポリシーコンプライアンスダッシュボードにはカウントされないにも関わらず、ポリシーコンソールには表示されます。

1.3.8.3. 標準グループのフィルターを新しいページに渡すことができない

グローバルハブポリシーグループコンプライアンスの概要 ハブダッシュボードでは、View Offending Policies for standard group をクリックして 1 つのデータポイントを確認できますが、このリンクをクリックして問題のページに移動すると、標準グループフィルターは新しいページに移動できません。

これは、Cluster Group Compliancy Overview の問題でもあります。

マネージドクラスターが OpenShift Container Platform 3.11 クラスター (非推奨) をマネージドクラスターとしてインポートする場合は、Global Hub > Overview ダッシュボードの Observability ページにリダイレクトできません。

対象のページに手動でナビゲートする必要があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat