12.9. コントロールプレーンマシンの手動スケーリング
ベアメタルインフラストラクチャーにクラスターをインストールする場合、クラスターのコントロールプレーンノードを最大 4 つまたは 5 つまで手動でスケーリングできます。クラスターを degraded 状態から回復したり、詳細なデバッグを実行したり、複雑なシナリオでコントロールプレーンの安定性とセキュリティーを確保したりする必要がある場合には、このユースケースを検討してください。
Red Hat は、ベアメタルインフラストラクチャー上でのみ、4 つまたは 5 つのコントロールプレーンノードを持つクラスターをサポートします。
12.9.1. クラスターへのコントロールプレーンノードの追加 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルインフラストラクチャーにクラスターをインストールする場合、クラスターのコントロールプレーンノードを最大 4 つまたは 5 つまで手動でスケーリングできます。この手順の例では、新しいコントロールプレーンノードとして node-5 を使用します。
前提条件
- 少なくとも 3 つのコントロールプレーンノードを持つ正常なクラスターをインストールした。
- インストール後のタスクとしてクラスターに追加するコントロールプレーンノードを 1 つ作成した。
手順
次のコマンドを入力して、新しいコントロールプレーンノードの保留中の証明書署名要求 (CSR) を取得します。
oc get csr | grep Pending
$ oc get csr | grep PendingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、コントロールプレーンノードの保留中の CSR をすべて承認します。
oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要インストールを完了するには、CSR を承認する必要があります。
次のコマンドを入力して、コントロールプレーンノードが
Readyステータスになっていることを確認します。oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記installer-provisioned infrastructure では、etcd Operator が Machine API を利用してコントロールプレーンを管理し、etcd クォーラムを確保します。Machine API は
MachineCR を使用して、基盤となるコントロールプレーンノードを表現および管理します。BareMetalHostおよびMachineCR を作成し、それらをコントロールプレーンノードのNodeCR にリンクします。次の例に示すように、一意の
.metadata.name値を持つBareMetalHostCR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
BareMetalHostCR を適用します。oc apply -f <filename>
$ oc apply -f <filename>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <filename> は
BareMetalHostCR の名前に置き換えます。
次の例に示すように、一意の
.metadata.name値を使用してMachineCR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<cluster_name>は、特定のクラスターの名前に置き換えます (例:test-day2-1-6qv96)。
次のコマンドを実行してクラスター名を取得します。
oc get infrastructure cluster -o=jsonpath='{.status.infrastructureName}{"\n"}'$ oc get infrastructure cluster -o=jsonpath='{.status.infrastructureName}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
MachineCR を適用します。oc apply -f <filename>
$ oc apply -f <filename>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<filename>はMachineCR の名前に置き換えます。
link-machine-and-node.shスクリプトを実行して、BareMetalHost、Machine、およびNodeオブジェクトをリンクします。次の
link-machine-and-node.shスクリプトをローカルマシンにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、スクリプトを実行可能にします。
chmod +x link-machine-and-node.sh
$ chmod +x link-machine-and-node.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、スクリプトを実行します。
bash link-machine-and-node.sh node-5 node-5
$ bash link-machine-and-node.sh node-5 node-5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記最初の
node-5インスタンスはマシンを表し、2 番目のインスタンスはノードを表します。
検証
既存のコントロールプレーンノードの 1 つを実行して、etcd のメンバーを確認します。
次のコマンドを入力して、コントロールプレーンノードへのリモートシェルセッションを開きます。
oc rsh -n openshift-etcd etcd-node-0
$ oc rsh -n openshift-etcd etcd-node-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcd のメンバーをリスト表示します。
etcdctl member list -w table
# etcdctl member list -w tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを入力して、etcd Operator の設定プロセスが完了するまで確認を続けます。期待される出力では、
PROGRESSING列にFalseと表示されます。oc get clusteroperator etcd
$ oc get clusteroperator etcdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、etcd の健全性を確認します。
コントロールプレーンノードへのリモートシェルセッションを開きます。
oc rsh -n openshift-etcd etcd-node-0
$ oc rsh -n openshift-etcd etcd-node-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow エンドポイントの健全性を確認します。期待される出力では、エンドポイントに対して
is healthyと表示されます。etcdctl endpoint health
# etcdctl endpoint healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを入力して、すべてのノードが準備完了状態であることを確認します。期待される出力では、各ノードエントリーの横に
Readyステータスが表示されます。oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、クラスター Operator がすべて利用可能であることを確認します。期待される出力では、各 Operator がリストされ、リストされた各 Operator の横に利用可能な状態を示す
Trueが表示されます。oc get ClusterOperators
$ oc get ClusterOperatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、クラスターのバージョンが正しいことを確認します。
oc get ClusterVersion
$ oc get ClusterVersionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version OpenShift Container Platform.5 True False 5h57m Cluster version is OpenShift Container Platform.5
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version OpenShift Container Platform.5 True False 5h57m Cluster version is OpenShift Container Platform.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow