1.8.6.3.2. API を使用して正常なマネージドクラスターにコントロールプレーンノードを追加する
API を使用して正常なマネージドクラスターにコントロールプレーンノードを追加するには、次の手順を実行します。
次のコマンドを実行して、ハブクラスターにログインします。クラスターの名前を追加します。
oc login --token=sha256~value--server=https://api.<cluster-name>.basedomain:6443コントロールプレーンノードとして使用するマシンを Discovery ISO から起動します。
注記: または、
BareMetalHostYAML を適用して、新しいホストをInfraEnvに適用します。エージェントの状態をチェックして、エージェントがクラスターに再度バインドする準備ができていることを確認します。次のコマンドを実行し、必要に応じて変数を置き換えます。
インベントリーを切り替えるには、次のコマンドを実行します。
<host-inventory-namespace>は自分の namespace に置き換えます。oc project <host-inventory-namespace>エージェントの状態を取得するには、次のコマンドを実行します。
<agent-name>は、エージェントの名前に置き換えます。oc get agent <agent-name> -oyaml | grep state-
出力で
stateInfo行をチェックして、ホストがクラスターにバインドする準備ができていることを確認します。
ホストのロールを
masterに設定します。Discovery ISO を使用してノードを追加する場合は、エージェントを承認し、ロールを
masterに設定します。以下のコマンドを実行します。oc patch agent <agent-name> -p '{"spec":{"approved":true,"role":"master"}}' --type=merge-
BareMetalHostを使用してノードを追加する場合は、BareMetalHostリソースの作成時に、BareMetalHostアノテーションに次の行を追加します。
bmac.agent-install.openshift.io/role: master次のコマンドを実行してパッチを検証します。
oc get agent出力で、
APPROVED列の各行がtrueであること、およびROLEがmasterであることを確認します。以下の例を参照してください。NAME CLUSTER APPROVED ROLE STAGE c6e00642-0e11-1689-a79d-0e131d2c6ecf true master次のコマンドを実行して、エージェントをクラスターに追加します。
oc patch agent <agent name> -p '{"spec":{"clusterDeploymentName":{"name":"<managed-cluster-name>","namespace":"<managed-cluster-namespace>"}}}' --type=merge次のコマンドを実行して、エージェントがクラスターにバインドされていることを確認します。
oc get agent以下の出力例を参照してください。
NAME CLUSTER APPROVED ROLE STAGE c6e00642-0e11-1689-a79d-0e131d2c6ecf hcpagent true master次のコマンドを実行してエージェントのステータスを確認します。エージェントがインストールされ、クラスターに参加している間、数分待つ必要がある場合があります。
oc get agent -w注記: 証明書署名要求 (CSR) は自動的に承認されません。
エージェントが
Rebootingの段階に達したら、CSR を手動で承認する必要があります。以下の手順を実行します。次のコマンドを実行して、マネージドクラスターの
kubeconfigファイルを取得します。kubeconfig_secret_name=$(oc -n ${cluster_name} get clusterdeployments ${cluster_name} -ojsonpath='{.spec.clusterMetadata.adminKubeconfigSecretRef.name}') oc -n ${cluster_name} get secret ${kubeconfig_secret_name} -ojsonpath={.data.kubeconfig} | base64 -d > managed-cluster.kubeconfig次のコマンドを実行して、マネージドクラスター上で保留中の CSR を見つけます。
oc --kubeconfig managed-cluster.kubeconfig get csr | grep Pendingマネージドクラスター内のエージェントの保留中の CSR を承認します。次のコマンドを実行し、
<csr-name>は CSR 名に置き換えます。oc --kubeconfig managed-cluster.kubeconfig adm certificate approve <csr-name>
STAGE に Done と表示されたら、ホストはインストールされています。次の出力例を参照してください。
NAME CLUSTER APPROVED ROLE STAGE
c6e00642-0e11-1689-a79d-0e131d2c6ecf hcpagent true master Done