1.8. トラブルシューティング
トラブルシューティングガイドをご使用の前に oc adm must-gather コマンドを実行して、詳細およびログを収集し、問題のデバッグ手順を行います。詳細は、must-gather コマンドを実行したトラブルシューティング を参照してください。
また、ロールベースのアクセス権限を確認してください。詳細については、ロールベースのアクセス制御 を参照してください。
1.8.1. 文書化されたトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator マルチクラスターエンジンのトラブルシューティングトピックのリストを表示します。
インストール
インストールタスクに関する主要なドキュメントを表示するには、インストール を参照してください。
クラスター管理
クラスターの管理に関する主要なドキュメントを表示するには、Kubernetes Operator クラスターライフサイクルのマルチクラスターエンジンの概要 を参照してください。
- オフラインクラスターのトラブルシューティング
- マネージドクラスターのインポート失敗に関するトラブルシューティング
- クラスターの再インポートが不明な権限エラーで失敗する
- Pending Import ステータスのクラスターのトラブルシューティング
- 証明書を変更した後のインポート済みクラスターのオフラインでのトラブルシューティング
- クラスターのステータスが offline から available に変わる場合のトラブルシューティング
- VMware vSphere でのクラスター作成のトラブルシューティング
- ステータスが Pending または Failed のクラスターのコンソールでのトラブルシューティング
- OpenShift Container Platform バージョン 3.11 クラスターのインポートの失敗時のトラブルシューティング
- degraded 状態にある Klusterlet のトラブルシューティング
- クラスターの削除後も namespace が残る
- クラスターのインポート時の auto-import-secret-exists エラー
1.8.2. must-gather コマンドを実行したトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
トラブルシューティングを開始するには、問題のデバッグを行う must-gather コマンドを実行する場合のトラブルシューティングシナリオについて確認し、このコマンドの使用を開始する手順を参照してください。
必要なアクセス権限: クラスターの管理者
1.8.2.1. Must-gather のシナリオ リンクのコピーリンクがクリップボードにコピーされました!
シナリオ 1: 文書化されたトラブルシューティング セクションを使用して、問題の解決策がまとめられているかどうかを確認します。本ガイドは、製品の主な機能別に設定されています。
このシナリオでは、解決策が本書にまとめられているかどうかを、本ガイドで確認します。
-
シナリオ 2: 問題の解決策の手順が文書にまとめられていない場合は、
must-gatherコマンドを実行し、その出力を使用して問題をデバッグします。 -
シナリオ 3:
must-gatherコマンドの出力を使用して問題をデバッグできない場合は、出力を Red Hat サポートに共有します。
1.8.2.2. Must-gather の手順 リンクのコピーリンクがクリップボードにコピーされました!
must-gather コマンドの使用を開始するには、以下の手順を参照してください。
-
must-gatherコマンドについて確認し、Red Hat OpenShift Container Platform の クラスターに関するデータの収集 に必要な前提条件をインストールします。 クラスターにログインします。通常のユースケースでは、engine クラスターにログインして、
must-gatherを実行する必要があります。注記: マネージドクラスターを確認する場合は、
cluster-scoped-resourcesディレクトリーにあるgather-managed.logファイルを検索します。<your-directory>/cluster-scoped-resources/gather-managed.log>
<your-directory>/cluster-scoped-resources/gather-managed.log>Copy to Clipboard Copied! Toggle word wrap Toggle overflow JOINED および AVAILABLE 列に
Trueが設定されていないマネージドクラスターがないかを確認します。must-gatherコマンドは、ステータスがTrueとして関連付けられていないクラスター上で、実行できます。データとディレクトリーの収集に使用される Kubernetes イメージのマルチクラスターエンジンを追加します。以下のコマンドを実行して、出力用にイメージとディレクトリーを挿入します。
oc adm must-gather --image=registry.redhat.io/multicluster-engine/must-gather-rhel8:v2.1.0 --dest-dir=<directory>
oc adm must-gather --image=registry.redhat.io/multicluster-engine/must-gather-rhel8:v2.1.0 --dest-dir=<directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定したディレクトリーに移動し、以下のレベルに整理されている出力を確認します。
-
ピアレベル 2 つ:
cluster-scoped-resourcesとnamespaceのリソース - それぞれに対するサブレベル: クラスタースコープおよび namespace スコープの両方のリソースに対するカスタムリソース定義の API グループ。
-
それぞれに対する次のレベル:
kindでソートされた YAML ファイル
-
ピアレベル 2 つ:
1.8.2.3. 非接続環境での must-gather リンクのコピーリンクがクリップボードにコピーされました!
非接続環境で must-gather コマンドを実行するには、次の手順を実行します。
- 非接続環境では、Red Hat Operator のカタログイメージをミラーレジストリーにミラーリングします。詳細は、ネットワーク切断状態でのインストール を参照してください。
- 次のコマンドを実行して、ミラーレジストリーからイメージを参照するログを抽出します。
REGISTRY=registry.example.com:5000 IMAGE=$REGISTRY/multicluster-engine/must-gather-rhel8@sha256:ff9f37eb400dc1f7d07a9b6f2da9064992934b69847d17f59e385783c071b9d8 oc adm must-gather --image=$IMAGE --dest-dir=./data
REGISTRY=registry.example.com:5000
IMAGE=$REGISTRY/multicluster-engine/must-gather-rhel8@sha256:ff9f37eb400dc1f7d07a9b6f2da9064992934b69847d17f59e385783c071b9d8
oc adm must-gather --image=$IMAGE --dest-dir=./data
ここ で製品チームのバグを開くことができます。
1.8.3. インストールステータスがインストールまたは保留中の状態のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator 用のマルチクラスターエンジンをインストールするときに、MultiClusterEngine が Installing フェーズのままであるか、複数の Pod が Pending ステータスを維持します。
1.8.3.1. 現象: Pending 状態で止まる リンクのコピーリンクがクリップボードにコピーされました!
MultiClusterEngine をインストールしてから、MultiClusterEngine リソースの status.components フィールドからのコンポーネントの 1 つ以上で ProgressDeadlineExceeded と報告したまま 10 分以上経過しています。クラスターのリソース制約が問題となっている場合があります。
MultiClusterEngine がインストールされた namespace で Pod を確認します。以下のようなステータスとともに Pending と表示される場合があります。
reason: Unschedulable
message: '0/6 nodes are available: 3 Insufficient cpu, 3 node(s) had taint {node-role.kubernetes.io/master:
}, that the pod didn't tolerate.'
reason: Unschedulable
message: '0/6 nodes are available: 3 Insufficient cpu, 3 node(s) had taint {node-role.kubernetes.io/master:
}, that the pod didn't tolerate.'
このような場合には、ワーカーノードにはクラスターでの製品実行に十分なリソースがありません。
1.8.3.2. 問題の解決: ワーカーノードのサイズの調整 リンクのコピーリンクがクリップボードにコピーされました!
この問題が発生した場合は、大規模なワーカーノードまたは複数のワーカーノードでクラスターを更新する必要があります。クラスターのサイジングのガイドラインについては、クラスターのサイジング を参照してください。
1.8.4. 再インストールに失敗する場合のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator のマルチクラスターエンジンを再インストールすると、Pod が起動しません。
1.8.4.1. 現象: 再インストールの失敗 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator 用のマルチクラスターエンジンをインストールした後に Pod が起動しない場合は、多くの場合、Kubernetes Operator 用のマルチクラスターエンジンの以前のインストールからの項目が、アンインストール時に正しく削除されなかったことが原因です。
Pod はこのような場合に、インストールプロセスの完了後に起動しません。
1.8.4.2. 問題の解決: 再インストールの失敗 リンクのコピーリンクがクリップボードにコピーされました!
この問題が発生した場合は、以下の手順を実行します。
- アンインストール の手順に従い、現在のコンポーネントを削除し、アンインストールプロセスを実行します。
- Helm のインストール の手順に従い、Helm CLI バイナリーバージョン 3.2.0 以降をインストールします。
-
ocコマンドが実行できるように、Red Hat OpenShift Container Platform CLI が設定されていることを確認してください。ocコマンドの設定方法は、Red Hat OpenShift Container Platform ドキュメントの OpenShift CLI の使用方法 を参照してください。 以下のスクリプトをファイルにコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプト内の
<namespace>を、Kubernetes Operator 用のマルチクラスターエンジンがインストールされている namespace の名前に置き換えます。namespace が消去され削除されるため、正しい namespace を指定するようにしてください。- スクリプトを実行して、アーティファクトを以前のインストールから削除します。
- インストールを実行します。ネットワーク接続時のオンラインインストール を参照してください。
1.8.5. オフラインクラスターのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
クラスターのステータスがオフラインと表示される一般的な原因がいくつかあります。
1.8.5.1. 現象: クラスターのステータスがオフライン状態である リンクのコピーリンクがクリップボードにコピーされました!
クラスターの作成手順を完了したら、Red Hat Advanced Cluster Management コンソールからアクセスできず、クラスターのステータスが offline と表示されます。
1.8.5.2. 問題の解決: クラスターのステータスがオフライン状態になっている リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターが利用可能かどうかを確認します。これは、Red Hat Advanced Cluster Management コンソールの Clusters エリアで確認できます。
利用不可の場合は、マネージドクラスターの再起動を試行します。
マネージドクラスターのステータスがオフラインのままの場合は、以下の手順を実行します。
-
ハブクラスターで
oc get managedcluster <cluster_name> -o yamlコマンドを実行します。<cluster_name>は、クラスター名に置き換えます。 -
status.conditionsセクションを見つけます。 -
type: ManagedClusterConditionAvailableのメッセージを確認して、問題を解決します。
-
ハブクラスターで
1.8.6. マネージドクラスターのインポート失敗に関するトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
クラスターのインポートに失敗した場合は、クラスターのインポートが失敗した理由を判別するためにいくつかの手順を実行できます。
1.8.6.1. 現象: インポートされたクラスターを利用できない リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインポートする手順を完了すると、コンソールからクラスターにアクセスできなくなります。
1.8.6.2. 問題の解決: インポートされたクラスターが利用できない リンクのコピーリンクがクリップボードにコピーされました!
インポートの試行後にインポートクラスターが利用できない場合には、いくつかの理由があります。クラスターのインポートに失敗した場合は、インポートに失敗した理由が見つかるまで以下の手順を実行します。
ハブクラスターで、次のコマンドを実行して、インポートコントローラーが実行していることを確認します。
kubectl -n multicluster-engine get pods -l app=managedcluster-import-controller-v2
kubectl -n multicluster-engine get pods -l app=managedcluster-import-controller-v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 実行中の Pod が 2 つ表示されるはずです。Pod のいずれかが実行されていない場合には、以下のコマンドを実行してログを表示して理由を判別します。
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow ハブクラスターで次のコマンドを実行して、マネージドクラスターのインポートシークレットがインポートコントローラーによって正常に生成されたかどうかを確認します。
kubectl -n <managed_cluster_name> get secrets <managed_cluster_name>-import
kubectl -n <managed_cluster_name> get secrets <managed_cluster_name>-importCopy to Clipboard Copied! Toggle word wrap Toggle overflow インポートシークレットが存在しない場合は、以下のコマンドを実行してインポートコントローラーのログエントリーを表示し、作成されていない理由を判断します。
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1 | grep importconfig-controller
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1 | grep importconfig-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow ハブクラスターで、マネージドクラスターが
local-clusterであるか、Hive によってプロビジョニングされているか、自動インポートシークレットがある場合は、次のコマンドを実行して、マネージドクラスターのインポートステータスを確認します。kubectl get managedcluster <managed_cluster_name> -o=jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.message}{"\n"}{end}' | grep ManagedClusterImportSucceededkubectl get managedcluster <managed_cluster_name> -o=jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.message}{"\n"}{end}' | grep ManagedClusterImportSucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow ManagedClusterImportSucceededがtrueでない場合には、コマンドの結果で失敗の理由が表示されます。- マネージドクラスターの Klusterlet ステータスが degraded 状態でないかを確認します。Klusterlet のパフォーマンスが低下した理由を特定するには、degraded 状態にある Klusterlet のトラブルシューティング を参照してください。
1.8.7. クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターを Kubernetes Operator ハブクラスターのマルチクラスターエンジンに再インポートするときに問題が発生した場合は、手順に従って問題をトラブルシューティングします。
1.8.7.1. 症状: クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator 用のマルチクラスターエンジンを使用して OpenShift Container Platform クラスターをプロビジョニングした後、API サーバー証明書を OpenShift Container Platform クラスターに変更または追加すると、x509: certificate signed by unknown authority エラーでクラスターの再インポートが失敗する場合があります。
1.8.7.2. 問題の特定: クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターの再インポートに失敗した後、次のコマンドを実行して、マルチクラスターエンジンで Kubernetes Operator ハブクラスターのインポートコントローラーログを取得します。
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 -f
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 -f
次のエラーログが表示される場合は、マネージドクラスター API サーバーの証明書が変更されている可能性があります。
ERROR Reconciler error {"controller": "clusterdeployment-controller", "object": {"name":"awscluster1","namespace":"awscluster1"}, "namespace": "awscluster1", "name": "awscluster1", "reconcileID": "a2cccf24-2547-4e26-95fb-f258a6710d80", "error": "Get \"https://api.awscluster1.dev04.red-chesterfield.com:6443/api?timeout=32s\": x509: certificate signed by unknown authority"}
マネージドクラスター API サーバー証明書が変更されたかどうかを確認するには、次の手順を実行します。
次のコマンドを実行して、
your-managed-cluster-nameをマネージドクラスターの名前に置き換えて、マネージドクラスターの名前を指定します。cluster_name=<your-managed-cluster-name>
cluster_name=<your-managed-cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、マネージドクラスター
kubeconfigシークレット名を取得します。kubeconfig_secret_name=$(oc -n ${cluster_name} get clusterdeployments ${cluster_name} -ojsonpath='{.spec.clusterMetadata.adminKubeconfigSecretRef.name}')kubeconfig_secret_name=$(oc -n ${cluster_name} get clusterdeployments ${cluster_name} -ojsonpath='{.spec.clusterMetadata.adminKubeconfigSecretRef.name}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
kubeconfigを新しいファイルにエクスポートします。oc -n ${cluster_name} get secret ${kubeconfig_secret_name} -ojsonpath={.data.kubeconfig} | base64 -d > kubeconfig.oldoc -n ${cluster_name} get secret ${kubeconfig_secret_name} -ojsonpath={.data.kubeconfig} | base64 -d > kubeconfig.oldCopy to Clipboard Copied! Toggle word wrap Toggle overflow export KUBECONFIG=kubeconfig.old
export KUBECONFIG=kubeconfig.oldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
kubeconfigを使用してマネージドクラスターから namespace を取得します。oc get ns
oc get nsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のメッセージのようなエラーが表示された場合は、クラスター API サーバーの証明書が変更になっており、kubeconfig ファイルが無効です。
Unable to connect to the server: x509: certificate signed by unknown authority
1.8.7.3. 問題の解決: クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスター管理者は、マネージドクラスター用に新しい有効な kubeconfig ファイルを作成する必要があります。
新しい kubeconfig を作成したら、次の手順を実行して、マネージドクラスターの新しい kubeconfig を更新します。
次のコマンドを実行して、
kubeconfigファイルパスとクラスター名を設定します。<path_to_kubeconfig>を新しいkubeconfigファイルへのパスに置き換えます。<managed_cluster_name>をマネージドクラスターの名前に置き換えます。cluster_name=<managed_cluster_name> kubeconfig_file=<path_to_kubeconfig>
cluster_name=<managed_cluster_name> kubeconfig_file=<path_to_kubeconfig>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、新しい
kubeconfigをエンコードします。kubeconfig=$(cat ${kubeconfig_file} | base64 -w0)kubeconfig=$(cat ${kubeconfig_file} | base64 -w0)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: macOS では、代わりに次のコマンドを実行します。
kubeconfig=$(cat ${kubeconfig_file} | base64)kubeconfig=$(cat ${kubeconfig_file} | base64)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、JSON パッチ
kubeconfigを定義します。kubeconfig_patch="[\{\"op\":\"replace\", \"path\":\"/data/kubeconfig\", \"value\":\"${kubeconfig}\"}, \{\"op\":\"replace\", \"path\":\"/data/raw-kubeconfig\", \"value\":\"${kubeconfig}\"}]"kubeconfig_patch="[\{\"op\":\"replace\", \"path\":\"/data/kubeconfig\", \"value\":\"${kubeconfig}\"}, \{\"op\":\"replace\", \"path\":\"/data/raw-kubeconfig\", \"value\":\"${kubeconfig}\"}]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、マネージドクラスターから管理者の
kubeconfigシークレット名を取得します。kubeconfig_secret_name=$(oc -n ${cluster_name} get clusterdeployments ${cluster_name} -ojsonpath='{.spec.clusterMetadata.adminKubeconfigSecretRef.name}')kubeconfig_secret_name=$(oc -n ${cluster_name} get clusterdeployments ${cluster_name} -ojsonpath='{.spec.clusterMetadata.adminKubeconfigSecretRef.name}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、管理者の
kubeconfigシークレットに新しいkubeconfigを適用します。oc -n ${cluster_name} patch secrets ${kubeconfig_secret_name} --type='json' -p="${kubeconfig_patch}"oc -n ${cluster_name} patch secrets ${kubeconfig_secret_name} --type='json' -p="${kubeconfig_patch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8.8. Pending Import ステータスのクラスターのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
クラスターのコンソールで継続的に Pending import と表示される場合は、以下の手順を実行して問題をトラブルシューティングしてください。
1.8.8.1. 現象: ステータスが Pending Import クラスター リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management コンソールを使用してクラスターをインポートした後に、コンソールで、クラスターのステータスが Pending import と表示されます。
1.8.8.2. 問題の特定: ステータスが Pending Import クラスター リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターで以下のコマンドを実行し、問題のある Kubernetes Pod 名を表示します。
kubectl get pod -n open-cluster-management-agent | grep klusterlet-registration-agent
kubectl get pod -n open-cluster-management-agent | grep klusterlet-registration-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow マネージドクラスターで以下のコマンドを実行し、エラーのログエントリーを探します。
kubectl logs <registration_agent_pod> -n open-cluster-management-agent
kubectl logs <registration_agent_pod> -n open-cluster-management-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow registration_agent_pod は、手順 1 で特定した Pod 名に置き換えます。
-
返された結果に、ネットワーク接続の問題があったと示すテキストがないかどうかを検索します。たとえば、
no such hostです。
1.8.8.3. 問題の解決: ステータスが Pending Import クラスター リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターで以下のコマンドを実行して、問題のあるポート番号を取得します。
oc get infrastructure cluster -o yaml | grep apiServerURL
oc get infrastructure cluster -o yaml | grep apiServerURLCopy to Clipboard Copied! Toggle word wrap Toggle overflow マネージドクラスターのホスト名が解決でき、ホストおよびポートへの送信接続が機能していることを確認します。
マネージドクラスターで通信が確立できない場合は、クラスターのインポートが完了していません。マネージドクラスターのクラスターステータスは、Pending import になります。
1.8.9. 証明書を変更した後のインポート済みクラスターのオフラインでのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
カスタムの apiserver 証明書のインストールはサポートされますが、証明書情報を変更する前にインポートされたクラスターの 1 つまたは複数でステータスが offline になる可能性があります。
1.8.9.1. 現象: 証明書の変更後にクラスターがオフラインになる リンクのコピーリンクがクリップボードにコピーされました!
証明書シークレットを更新する手順を完了すると、オンラインだった 1 つ以上のクラスターがコンソールに offline ステータスを表示するようになります。
1.8.9.2. 問題の特定: 証明書の変更後にクラスターがオフラインになる リンクのコピーリンクがクリップボードにコピーされました!
カスタムの API サーバー証明書の情報を更新すると、インポートされ、新しい証明書が追加される前に稼働していたクラスターのステータスが offline になります。
オフラインのマネージドクラスターの open-cluster-management-agent namespace にある Pod のログで、証明書に問題があるとのエラーが見つかります。以下の例のようなエラーがログに表示されます。
work-agent のログ:
E0917 03:04:05.874759 1 manifestwork_controller.go:179] Reconcile work test-1-klusterlet-addon-workmgr fails with err: Failed to update work status with err Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/namespaces/test-1/manifestworks/test-1-klusterlet-addon-workmgr": x509: certificate signed by unknown authority E0917 03:04:05.874887 1 base_controller.go:231] "ManifestWorkAgent" controller failed to sync "test-1-klusterlet-addon-workmgr", err: Failed to update work status with err Get "api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/namespaces/test-1/manifestworks/test-1-klusterlet-addon-workmgr": x509: certificate signed by unknown authority E0917 03:04:37.245859 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.ManifestWork: failed to list *v1.ManifestWork: Get "api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/namespaces/test-1/manifestworks?resourceVersion=607424": x509: certificate signed by unknown authority
E0917 03:04:05.874759 1 manifestwork_controller.go:179] Reconcile work test-1-klusterlet-addon-workmgr fails with err: Failed to update work status with err Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/namespaces/test-1/manifestworks/test-1-klusterlet-addon-workmgr": x509: certificate signed by unknown authority
E0917 03:04:05.874887 1 base_controller.go:231] "ManifestWorkAgent" controller failed to sync "test-1-klusterlet-addon-workmgr", err: Failed to update work status with err Get "api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/namespaces/test-1/manifestworks/test-1-klusterlet-addon-workmgr": x509: certificate signed by unknown authority
E0917 03:04:37.245859 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.ManifestWork: failed to list *v1.ManifestWork: Get "api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/namespaces/test-1/manifestworks?resourceVersion=607424": x509: certificate signed by unknown authority
registration-agent のログ:
I0917 02:27:41.525026 1 event.go:282] Event(v1.ObjectReference{Kind:"Namespace", Namespace:"open-cluster-management-agent", Name:"open-cluster-management-agent", UID:"", APIVersion:"v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ManagedClusterAvailableConditionUpdated' update managed cluster "test-1" available condition to "True", due to "Managed cluster is available"
E0917 02:58:26.315984 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1beta1.CertificateSigningRequest: Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/managedclusters?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dtest-1&resourceVersion=607408&timeout=9m33s&timeoutSeconds=573&watch=true"": x509: certificate signed by unknown authority
E0917 02:58:26.598343 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.ManagedCluster: Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/managedclusters?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dtest-1&resourceVersion=607408&timeout=9m33s&timeoutSeconds=573&watch=true": x509: certificate signed by unknown authority
E0917 02:58:27.613963 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.ManagedCluster: failed to list *v1.ManagedCluster: Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/managedclusters?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dtest-1&resourceVersion=607408&timeout=9m33s&timeoutSeconds=573&watch=true"": x509: certificate signed by unknown authority
I0917 02:27:41.525026 1 event.go:282] Event(v1.ObjectReference{Kind:"Namespace", Namespace:"open-cluster-management-agent", Name:"open-cluster-management-agent", UID:"", APIVersion:"v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ManagedClusterAvailableConditionUpdated' update managed cluster "test-1" available condition to "True", due to "Managed cluster is available"
E0917 02:58:26.315984 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1beta1.CertificateSigningRequest: Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/managedclusters?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dtest-1&resourceVersion=607408&timeout=9m33s&timeoutSeconds=573&watch=true"": x509: certificate signed by unknown authority
E0917 02:58:26.598343 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.ManagedCluster: Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/managedclusters?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dtest-1&resourceVersion=607408&timeout=9m33s&timeoutSeconds=573&watch=true": x509: certificate signed by unknown authority
E0917 02:58:27.613963 1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.ManagedCluster: failed to list *v1.ManagedCluster: Get "https://api.aaa-ocp.dev02.location.com:6443/apis/cluster.management.io/v1/managedclusters?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dtest-1&resourceVersion=607408&timeout=9m33s&timeoutSeconds=573&watch=true"": x509: certificate signed by unknown authority
1.8.9.3. 問題の解決: 証明書の変更後にクラスターがオフラインになる リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターが local-cluster の場合、またはマネージドクラスターが Kubernetes Operator 用のマルチクラスターエンジンで作成された場合、マネージドクラスターを再インポートするには、10 分以上待つ必要があります。
マネージドクラスターをすぐに再インポートするには、ハブクラスター上のマネージドクラスターインポートシークレットを削除し、{mce-short} で再インポートします。以下のコマンドを実行します。
oc delete secret -n <cluster_name> <cluster_name>-import
oc delete secret -n <cluster_name> <cluster_name>-import
<cluster_name> を、インポートするマネージドクラスターの名前に置き換えます。
{mce-short} でインポートされたマネージドクラスターを再インポートする場合は、次の手順を実行して、マネージドクラスターを再度インポートします。
ハブクラスターで、次のコマンドを実行してマネージドクラスターのインポートシークレットを再作成します。
oc delete secret -n <cluster_name> <cluster_name>-import
oc delete secret -n <cluster_name> <cluster_name>-importCopy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>を、インポートするマネージドクラスターの名前に置き換えます。ハブクラスターで、次のコマンドを実行して、マネージドクラスターのインポートシークレットを YAML ファイルに公開します。
oc get secret -n <cluster_name> <cluster_name>-import -ojsonpath='{.data.import\.yaml}' | base64 --decode > import.yamloc get secret -n <cluster_name> <cluster_name>-import -ojsonpath='{.data.import\.yaml}' | base64 --decode > import.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>を、インポートするマネージドクラスターの名前に置き換えます。マネージドクラスターで、次のコマンドを実行して
import.yamlファイルを適用します。oc apply -f import.yaml
oc apply -f import.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
注記: 前の手順では、マネージドクラスターがハブクラスターから切り離されません。この手順により、必要なマニフェストがマネージドクラスターの現在の設定 (新しい証明書情報を含む) で更新されます。
1.8.10. クラスターのステータスが offline から available に変わる場合のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのステータスは、環境またはクラスターを手動で変更することなく、offline と available との間で切り替わります。
1.8.10.1. 現象: クラスターのステータスが offline から available に変わる リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターからハブクラスターへのネットワーク接続が不安定な場合に、マネージドクラスターのステータスが offline と available との間で順に切り替わると、ハブクラスターにより報告されます。
1.8.10.2. 問題の解決: クラスターのステータスが offline から available に変わる リンクのコピーリンクがクリップボードにコピーされました!
この問題を解決するには、以下の手順を実行します。
次のコマンドを入力して、ハブクラスターで
ManagedClusterの仕様を編集します。oc edit managedcluster <cluster-name>
oc edit managedcluster <cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-name は、マネージドクラスターの名前に置き換えます。
-
ManagedCluster仕様のleaseDurationSecondsの値を増やします。デフォルト値は 5 分ですが、ネットワークの問題がある状態で接続を維持するには十分でない場合があります。リースの時間を長く指定します。たとえば、設定を 20 分に増やします。
1.8.11. VMware vSphere でのクラスター作成のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で Red Hat OpenShift Container Platform クラスターを作成する時に問題が発生した場合は、以下のトラブルシューティング情報を参照して、この情報のいずれかが問題に対応しているかどうかを確認します。
注記: VMware vSphere でクラスター作成プロセスが失敗した場合に、リンクが有効にならずログが表示されないことがあります。上記が発生する場合は、hive-controllers Pod のログを確認して問題を特定できます。hive-controllers ログは hive namespace にあります。
1.8.11.1. 証明書 の IP SAN エラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.1.1. 現象: 証明書の IP SAN エラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、証明書 IP SAN エラーを示すエラーメッセージでクラスターに問題が発生します。
1.8.11.1.2. 問題の特定: 証明書の IP SAN エラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのデプロイメントに失敗して、デプロイメントログに以下のエラーが返されます。
time="2020-08-07T15:27:55Z" level=error msg="Error: error setting up new vSphere SOAP client: Post https://147.1.1.1/sdk: x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs" time="2020-08-07T15:27:55Z" level=error
time="2020-08-07T15:27:55Z" level=error msg="Error: error setting up new vSphere SOAP client: Post https://147.1.1.1/sdk: x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs"
time="2020-08-07T15:27:55Z" level=error
1.8.11.1.3. 問題の解決: 証明書の IP SAN エラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
認証情報の IP アドレスではなく VMware vCenter サーバー完全修飾ホスト名を使用します。また、VMware vCenter CA 証明書を更新して、IP SAN を組み込むこともできます。
1.8.11.2. 不明な証明局のエラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.2.1. 現象: 不明な証明局のエラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、証明書が不明な証明局により署名されているのでクラスターに問題が発生します。
1.8.11.2.2. 問題の特定: 不明な証明局のエラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのデプロイメントに失敗して、デプロイメントログに以下のエラーが返されます。
Error: error setting up new vSphere SOAP client: Post https://vspherehost.com/sdk: x509: certificate signed by unknown authority"
Error: error setting up new vSphere SOAP client: Post https://vspherehost.com/sdk: x509: certificate signed by unknown authority"
1.8.11.2.3. 問題の解決: 不明な証明局のエラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
認証情報の作成時に認証局の正しい証明書が入力されていることを確認します。
1.8.11.3. 証明書の期限切れでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.3.1. 現象: 証明書の期限切れでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、証明書の期限が切れているか、有効にしていないため、クラスターに問題が発生します。
1.8.11.3.2. 問題の特定: 証明書の期限切れでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのデプロイメントに失敗して、デプロイメントログに以下のエラーが返されます。
x509: certificate has expired or is not yet valid
x509: certificate has expired or is not yet valid
1.8.11.3.3. 問題の解決: 証明書の期限切れでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
ESXi ホストの時間が同期されていることを確認します。
1.8.11.4. タグ付けの権限が十分ではないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.4.1. 現象: タグ付けの権限が十分ではないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、タグ付けの使用に十分な権限がないためクラスターに問題が発生します。
1.8.11.4.2. 問題の特定: タグ付けの権限が十分にないためにマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのデプロイメントに失敗して、デプロイメントログに以下のエラーが返されます。
1.8.11.4.3. 問題の解決: タグ付けの権限が十分ではないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vCenter が必要とするアカウントの権限が正しいことを確認します。詳細は、インストール時に削除されたイメージレジストリー を参照してください。
1.8.11.5. 無効な dnsVIP でマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.5.1. 現象: 無効な dnsVIP でマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、dnsVIP が無効であるため、クラスターに問題が発生します。
1.8.11.5.2. 問題の特定: 無効な dnsVIP でマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新しいマネージドクラスターをデプロイしようとして以下のメッセージが表示されるのは、VMware Installer Provisioned Infrastructure (IPI) をサポートしない以前の OpenShift Container Platform リリースイメージを使用しているためです。
failed to fetch Master Machines: failed to load asset \\\"Install Config\\\": invalid \\\"install-config.yaml\\\" file: platform.vsphere.dnsVIP: Invalid value: \\\"\\\": \\\"\\\" is not a valid IP
failed to fetch Master Machines: failed to load asset \\\"Install Config\\\": invalid \\\"install-config.yaml\\\" file: platform.vsphere.dnsVIP: Invalid value: \\\"\\\": \\\"\\\" is not a valid IP
1.8.11.5.3. 問題の解決: 無効な dnsVIP でマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware インストーラーでプロビジョニングされるインフラストラクチャーをサポートする OpenShift Container Platform で、新しいバージョンのリリースイメージを選択します。
1.8.11.6. ネットワークタイプが正しくないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.6.1. 現象: ネットワークタイプが正しくないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、間違ったネットワークタイプが指定されているため、クラスターに問題が発生します。
1.8.11.6.2. 問題の特定: ネットワークタイプが正しくないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新しいマネージドクラスターをデプロイしようとして以下のメッセージが表示されるのは、VMware Installer Provisioned Infrastructure (IPI) をサポートしない以前の OpenShift Container Platform イメージを使用しているためです。
1.8.11.6.3. 問題の解決: ネットワークタイプが正しくないためマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
指定の VMware クラスターに対して有効な VMware vSphere ネットワークタイプを選択します。
1.8.11.7. ディスクの変更処理のエラーでマネージドクラスターの作成に失敗する リンクのコピーリンクがクリップボードにコピーされました!
1.8.11.7.1. 現象: ディスクの変更処理のエラーが原因でマネージドクラスターの追加に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere で新規の Red Hat OpenShift Container Platform クラスターを作成した後に、ディスク変更処理時にエラーによりクラスターに問題が発生します。
1.8.11.7.2. 問題の特定: ディスクの変更処理のエラーが原因でマネージドクラスターの追加に失敗する リンクのコピーリンクがクリップボードにコピーされました!
以下のようなメッセージがログに表示されます。
ERROR ERROR Error: error reconfiguring virtual machine: error processing disk changes post-clone: disk.0: ServerFaultCode: NoPermission: RESOURCE (vm-71:2000), ACTION (queryAssociatedProfile): RESOURCE (vm-71), ACTION (PolicyIDByVirtualDisk)
ERROR
ERROR Error: error reconfiguring virtual machine: error processing disk changes post-clone: disk.0: ServerFaultCode: NoPermission: RESOURCE (vm-71:2000), ACTION (queryAssociatedProfile): RESOURCE (vm-71), ACTION (PolicyIDByVirtualDisk)
1.8.11.7.3. 問題の解決: ディスクの変更処理のエラーが原因でマネージドクラスターの追加に失敗する リンクのコピーリンクがクリップボードにコピーされました!
VMware vSphere クライアントを使用してユーザーに プロファイル駆動型のストレージ権限 の 全権限 を割り当てます。
1.8.12. ステータスが Pending または Failed のクラスターのコンソールでのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
作成してたクラスターのステータスがコンソールで Pending または Failed と表示されている場合は、以下の手順を実行して問題のトラブルシューティングを実行します。
1.8.12.1. 現象: コンソールでステータスが Pending または Failed のクラスターのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
コンソールを使用して新しいクラスターを作成した後、クラスターは Pending のステータスを超えて進行しないか、Failed ステータスを表示します。
1.8.12.2. 問題の特定: コンソールでステータスが Pending または Failed のクラスター リンクのコピーリンクがクリップボードにコピーされました!
クラスターのステータスが Failed と表示される場合は、クラスターの詳細ページに移動して、提供されたログへのリンクに進みます。ログが見つからない場合や、クラスターのステータスが Pending と表示される場合は、以下の手順を実行してログを確認します。
手順 1
ハブクラスターで以下のコマンドを実行し、新規クラスターの namespace に作成した Kubernetes Pod の名前を表示します。
oc get pod -n <new_cluster_name>
oc get pod -n <new_cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow new_cluster_nameは、作成したクラスター名に置き換えます。名前に
provisionの文字列が含まれる Pod が表示されていない場合は、手順 2 に進みます。タイトルにprovisionが含まれる Pod があった場合は、ハブクラスターで以下のコマンドを実行して、その Pod のログを表示します。oc logs <new_cluster_name_provision_pod_name> -n <new_cluster_name> -c hive
oc logs <new_cluster_name_provision_pod_name> -n <new_cluster_name> -c hiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow new_cluster_name_provision_pod_nameは、作成したクラスター名の後にprovisionが含まれる Pod 名を指定するように置き換えます。- ログでエラーを検索してください。この問題の原因が解明する場合があります。
手順 2
名前に
provisionが含まれる Pod がない場合は、問題がプロセスの初期段階で発生しています。ログを表示するには、以下の手順を実行します。ハブクラスターで以下のコマンドを実行してください。
oc describe clusterdeployments -n <new_cluster_name>
oc describe clusterdeployments -n <new_cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow new_cluster_nameは、作成したクラスター名に置き換えます。クラスターのインストールログの詳細は、Red Hat OpenShift ドキュメントの インストールログの収集 を参照してください。- リソースの Status.Conditions.Message と Status.Conditions.Reason のエントリーに問題に関する追加の情報があるかどうかを確認します。
1.8.12.3. 問題の解決: コンソールでステータスが Pending または Failed のクラスター リンクのコピーリンクがクリップボードにコピーされました!
ログでエラーを特定した後に、エラーの解決方法を決定してから、クラスターを破棄して、作り直してください。
以下の例では、サポート対象外のゾーンを選択している可能性を示すログエラーと、解決に必要なアクションが提示されています。
No subnets provided for zones
No subnets provided for zones
クラスターの作成時に、サポートされていないリージョンにあるゾーンを 1 つ以上選択しています。問題解決用にクラスターを再作成する時に、以下のアクションの 1 つを実行します。
- リージョン内の異なるゾーンを選択します。
- 他のゾーンをリストしている場合は、サポートを提供しないゾーンを省略します。
- お使いのクラスターに、別のリージョンを選択します。
ログから問題を特定した後に、クラスターを破棄し、再作成します。
クラスターの作成に関する詳細は、クラスターの作成 を参照してください。
1.8.13. OpenShift Container Platform バージョン 3.11 クラスターのインポートの失敗時のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
1.8.13.1. 現象: OpenShift Container Platform バージョン 3.11 クラスターのインポートに失敗する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform バージョン 3.11 クラスターのインポートを試行すると、以下の内容のようなログメッセージでインポートに失敗します。
1.8.13.2. 問題の特定: OpenShift Container Platform バージョン 3.11 クラスターのインポートに失敗する リンクのコピーリンクがクリップボードにコピーされました!
この問題は多くの場合、インストールされている kubectl コマンドラインツールのバージョンが 1.11 以前であるために発生します。以下のコマンドを実行して、実行中の kubectl コマンドラインツールのバージョンを表示します。
kubectl version
kubectl version
返されたデータがバージョンが 1.11 以前の場合は、問題の解決: OpenShift Container Platform バージョン 3.11 クラスターのインポートに失敗する に記載される修正のいずれかを実行します。
1.8.13.3. 問題の解決: OpenShift Container Platform バージョン 3.11 クラスターのインポートに失敗する リンクのコピーリンクがクリップボードにコピーされました!
この問題は、以下のいずれかの手順を実行して解決できます。
最新バージョンの
kubectlコマンドラインツールをインストールします。-
kubectlツールの最新バージョンを、Kubernetes ドキュメントの kubectl のインストールとセットアップ からダウンロードします。 -
kubectlツールのアップグレード後にクラスターを再度インポートします。
-
import コマンドが含まれるファイルを実行します。
- CLI を使用したマネージドクラスターのインポート の手順を開始します。
-
クラスターのインポートコマンドを作成する場合には、このインポートコマンドを
import.yamlという名前の YAML ファイルにコピーします。 以下のコマンドを実行して、ファイルからクラスターを再度インポートします。
oc apply -f import.yaml
oc apply -f import.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8.14. degraded 状態にある Klusterlet のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Klusterlet の状態が Degraded の場合は、マネージドクラスターの Klusterlet エージェントの状態を診断しやすくなります。Klusterlet の状態が Degraded になると、マネージドクラスターの Klusterlet エージェントで発生する可能性のあるエラーに対応する必要があります。Klusterlet の degraded の状態が True に設定されている場合は、以下の情報を参照します。
1.8.14.1. 現象: Klusterlet の状態が degraded である リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターで Klusterlet をデプロイした後に、KlusterletRegistrationDegraded または KlusterletWorkDegraded の状態が True と表示されます。
1.8.14.2. 問題の特定: Klusterlet の状態が degraded である リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターで以下のコマンドを実行して、Klusterlet のステータスを表示します
kubectl get klusterlets klusterlet -oyaml
kubectl get klusterlets klusterlet -oyamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
KlusterletRegistrationDegradedまたはKlusterletWorkDegradedをチェックして、状態がTrueに設定されいるかどうかを確認します。記載されている Degraded の状態は、問題の解決 に進みます。
1.8.14.3. 問題の解決: Klusterlet の状態が degraded である リンクのコピーリンクがクリップボードにコピーされました!
ステータスが Degraded のリストおよびこれらの問題の解決方法を参照してください。
-
KlusterletRegistrationDegradedの状態が True で、この状態の理由が BootStrapSecretMissing の場合は、open-cluster-management-agentnamespace にブートストラップのシークレットを作成する必要があります。 -
KlusterletRegistrationDegradedの状態が True と表示され、状態の理由が BootstrapSecretError または BootstrapSecretUnauthorized の場合は、現在のブートストラップシークレットが無効です。現在のブートストラップシークレットを削除して、open-cluster-management-agentnamespace で有効なブートストラップシークレットをもう一度作成します。 -
KlusterletRegistrationDegradedおよびKlusterletWorkDegradedが True と表示され、状態の理由が HubKubeConfigSecretMissing の場合は、Klusterlet を削除して作成し直します。 -
KlusterletRegistrationDegradedおよびKlusterletWorkDegradedが True と表示され、状態の理由が ClusterNameMissing、KubeConfigMissing、HubConfigSecretError、または HubConfigSecretUnauthorized の場合は、open-cluster-management-agentnamespace からハブクラスターの kubeconfig シークレットを削除します。登録エージェントは再度ブートストラップして、新しいハブクラスターの kubeconfig シークレットを取得します。 -
KlusterletRegistrationDegradedが True と表示され、状態の理由が GetRegistrationDeploymentFailed または UnavailableRegistrationPod の場合は、状態のメッセージを確認して、問題の詳細を取得して解決してみてください。 -
KlusterletWorkDegradedが True と表示され、状態の理由が GetWorkDeploymentFailed または UnavailableWorkPod の場合は、状態のメッセージを確認して、問題の詳細を取得し、解決してみてください。
1.8.15. クラスターの削除後も namespace が残る リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターを削除すると、通常 namespace はクラスターの削除プロセスの一部として削除されます。まれに namespace は一部のアーティファクトが含まれた状態で残る場合があります。このような場合は、namaspace を手動で削除する必要があります。
1.8.15.1. 現象: クラスターの削除後も namespace が残る リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターの削除後に namespace が削除されません。
1.8.15.2. 問題の解決: クラスターの削除後も namespace が残る リンクのコピーリンクがクリップボードにコピーされました!
namespace を手作業で削除するには、以下の手順を実行します。
次のコマンドを実行して、<cluster_name> namespace に残っているリソースのリストを作成します。
oc api-resources --verbs=list --namespaced -o name | grep -E '^secrets|^serviceaccounts|^managedclusteraddons|^roles|^rolebindings|^manifestworks|^leases|^managedclusterinfo|^appliedmanifestworks'|^clusteroauths' | xargs -n 1 oc get --show-kind --ignore-not-found -n <cluster_name>
oc api-resources --verbs=list --namespaced -o name | grep -E '^secrets|^serviceaccounts|^managedclusteraddons|^roles|^rolebindings|^manifestworks|^leases|^managedclusterinfo|^appliedmanifestworks'|^clusteroauths' | xargs -n 1 oc get --show-kind --ignore-not-found -n <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster_nameは、削除を試みたクラスターの namespace 名に置き換えます。以下のコマンドを入力してリストを編集し、ステータスが
Deleteではないリストから特定したリソースを削除します。oc edit <resource_kind> <resource_name> -n <namespace>
oc edit <resource_kind> <resource_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow resource_kindは、リソースの種類に置き換えます。resource_nameは、リソース名に置き換えます。namespaceは、リソースの namespace に置き換えます。-
メタデータで
finalizer属性の場所を特定します。 -
vi エディターの
ddコマンドを使用して、Kubernetes 以外のファイナライザーを削除します。 -
:wqコマンドを入力し、リストを保存してviエディターを終了します。 以下のコマンドを入力して namespace を削除します。
oc delete ns <cluster-name>
oc delete ns <cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-nameを、削除する namespace の名前に置き換えます。
1.8.16. クラスターのインポート時の auto-import-secret-exists エラー リンクのコピーリンクがクリップボードにコピーされました!
クラスターのインポートは、auto import secret exists というエラーメッセージで失敗します。
1.8.16.1. 現象: クラスターのインポート時の Auto-import-secret-exists エラー リンクのコピーリンクがクリップボードにコピーされました!
管理用のハイブクラスターをインポートすると、auto-import-secret already exists というエラーが表示されます。
1.8.16.2. 問題の解決: クラスターのインポート時の Auto-import-secret-exists エラー リンクのコピーリンクがクリップボードにコピーされました!
この問題は、以前に管理されていたクラスターをインポートしようとすると発生します。これが生じると、クラスターを再インポートしようとすると、シークレットは競合します。
この問題を回避するには、以下の手順を実行します。
既存の
auto-import-secretを手動で削除するには、ハブクラスターで以下のコマンドを実行します。oc delete secret auto-import-secret -n <cluster-namespace>
oc delete secret auto-import-secret -n <cluster-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespaceは、お使いのクラスターの namespace に置き換えます。- ハブクラスターへのターゲットのマネージドクラスターのインポート の手順を使用して、クラスターを再度インポートします。
クラスターがインポートされました。