1.7. クラスターの再インポートが不明な権限エラーで失敗する
管理対象クラスターを Red Hat Advanced Cluster Management ハブクラスターに再インポートする際に問題が発生した場合は、手順に従って問題をトラブルシューティングします。
1.7.1. 症状: クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management を使用して OpenShift Container Platform クラスターをプロビジョニングした後、API サーバー証明書を OpenShift Container Platform クラスターに変更または追加すると、x509: certificate signed by unknown authority エラーでクラスターの再インポートが失敗する場合があります。
1.7.2. 問題の特定: クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
管理対象クラスターの再インポートに失敗した後、次のコマンドを実行して、Red Hat Advanced Cluster Management ハブクラスターのインポートコントローラーログを取得します。
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.7.3. 問題の解決: クラスターの再インポートが不明な権限エラーで失敗する リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスター管理者は、マネージドクラスター用に新しい有効な kubeconfig ファイルを作成する必要があります。
新しい kubeconfig を作成したら、次の手順を実行して、マネージドクラスターの新しい kubeconfig を更新します。
次のコマンドを実行して、
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=$(cat <your-new-valid-kubeconfig-file-path> | base64 -w0) kubeconfig_patch="[{\"op\":\"replace\", \"path\":\"/data/kubeconfig\", \"value\":\"${kubeconfig}\"}]" kubeconfig_secret_name=$(oc -n ${cluster_name} get clusterdeployments ${cluster_name} -ojsonpath='{.spec.clusterMetadata.adminKubeconfigSecretRef.name}')kubeconfig=$(cat <your-new-valid-kubeconfig-file-path> | base64 -w0) kubeconfig_patch="[{\"op\":\"replace\", \"path\":\"/data/kubeconfig\", \"value\":\"${kubeconfig}\"}]" 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 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