1.8.6.2.2. 有効な kubeconfig の作成
実稼働環境のワーカーノードを OpenShift Container Platform クラスターに追加する前に、有効な kubeconfig があるかどうかを確認する必要があります。
マネージドクラスターの API 証明書が変更された場合は、次の手順を実行して、kubeconfig を新しい CA 証明書で更新します。
次のコマンドを実行して、
clusterDeploymentのkubeconfigが有効かどうかを確認します。<kubeconfig_name>を現在のkubeconfigの名前に置き換え、<cluster_name>をクラスターの名前に置き換えます。export <kubeconfig_name>=$(oc get cd $<cluster_name> -o "jsonpath={.spec.clusterMetadata.adminKubeconfigSecretRef.name}") oc extract secret/$<kubeconfig_name> --keys=kubeconfig --to=- > original-kubeconfig oc --kubeconfig=original-kubeconfig get node次のエラーメッセージが表示された場合は、
kubeconfigシークレットを更新する必要があります。エラーメッセージが表示されない場合は、ワーカーノードの追加 に進みます。Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authoritykubeconfigのcertificate-authority-dataフィールドからbase64でエンコードされた証明書バンドルを取得し、次のコマンドを実行してデコードします。echo <base64 encoded blob> | base64 --decode > decoded-existing-certs.pem元のファイルをコピーして、更新された
kubeconfigファイルを作成します。次のコマンドを実行し、<new_kubeconfig_name>を新しいkubeconfigファイルの名前に置き換えます。cp original-kubeconfig <new_kubeconfig_name>次のコマンドを実行して、デコードされた pem に新しい証明書を追加します。
cat decoded-existing-certs.pem new-ca-certificate.pem | openssl base64 -A-
テキストエディターを使用して、前のコマンドの
base64出力を新しいkubeconfigファイルのcertificate-authority-dataキーの値として追加します。 新しい
kubeconfigを使用して API をクエリーし、新しいkubeconfigが有効かどうかを確認します。以下のコマンドを実行します。<new_kubeconfig_name>を新しいkubeconfigファイルの名前に置き換えます。KUBECONFIG=<new_kubeconfig_name> oc get nodes成功した出力を受け取った場合、
kubeconfigは有効です。次のコマンドを実行して、Red Hat Advanced Cluster Management ハブクラスターの
kubeconfigシークレットを更新します。<new_kubeconfig_name>を新しいkubeconfigファイルの名前に置き換えます。oc patch secret $original-kubeconfig --type='json' -p="[{'op': 'replace', 'path': '/data/kubeconfig', 'value': '$(openssl base64 -A -in <new_kubeconfig_name>)'},{'op': 'replace', 'path': '/data/raw-kubeconfig', 'value': '$(openssl base64 -A -in <new_kubeconfig_name>)'}]"