12.9. コントロールプレーンマシンの手動スケーリング
ベアメタルインフラストラクチャーにクラスターをインストールする場合、クラスターのコントロールプレーンノードを手動で 4 つまたは 5 つにスケールアップできます。劣化(degraded)状態からクラスターを回復したり、ディープレベルのデバッグを実行したり、複雑なシナリオでコントロールプレーンの安定性とセキュリティーを確保したりする必要がある場合、このユースケースを考えてみましょう。
Red Hat は、ベアメタルインフラストラクチャーでのみ 4 つまたは 5 つのコントロールプレーンノードを持つクラスターをサポートします。
12.9.1. コントロールプレーンノードのクラスターへの追加 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルインフラストラクチャーにクラスターをインストールする場合、クラスターのコントロールプレーンノードを手動で 4 つまたは 5 つにスケールアップできます。手順の例では、node-
5 を新規コントロールプレーンノードとして使用します。
前提条件
- 少なくとも 3 つのコントロールプレーンノードを持つ正常なクラスターをインストールした。
- インストール後のタスクとしてクラスターに追加する単一のコントロールプレーンノードを作成している。
手順
次のコマンドを入力して、新しいコントロールプレーンノードの保留中の証明書署名要求(CSR)を取得します。
oc get csr | grep Pending
$ oc get csr | grep Pending
Copy 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 approve
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要インストールを完了するには、CSR を承認する必要があります。
次のコマンドを入力して、コントロールプレーンノードが
Ready
ステータスであることを確認します。oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記インストーラーでプロビジョニングされるインフラストラクチャーでは、etcd Operator はマシン API に依存してコントロールプレーンを管理し、etcd クォーラムを確認します。続いて、マシン API は
Machine
CR を使用して基礎となるコントロールプレーンノードを表現および管理します。BareMetalHost
およびMachine
CR を作成し、それらをコントロールプレーンノードのNode
CR にリンクします。次の例に示すように、一意の
.metadata.name
値を使用してBareMetalHost
CR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
BareMetalHost
CR を適用します。oc apply -f <filename>
$ oc apply -f <filename>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <filename> は
BareMetalHost
CR の名前に置き換えます。
以下の例のように、一意の
.metadata.name
値を使用してMachine
CR を作成します。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 次のコマンドを入力して、
Machine
CR を適用します。oc apply -f <filename>
$ oc apply -f <filename>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<filename>
はMachine
CR の名前に置き換えます。
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.sh
Copy 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-5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記最初の
node-5
インスタンスはマシンを表し、2 つ目のインスタンスはノードを表します。
検証
既存のコントロールプレーンノードのいずれかを実行して、etcd のメンバーを確認します。
次のコマンドを入力して、コントロールプレーンノードへのリモートシェルセッションを開きます。
oc rsh -n openshift-etcd etcd-node-0
$ oc rsh -n openshift-etcd etcd-node-0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcd メンバーを一覧表示します。
etcdctl member list -w table
# etcdctl member list -w table
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを入力して、完了するまで etcd Operator 設定プロセスを確認します。予期される出力には、
PROGRESSING
列の下にFalse
が表示されます。oc get clusteroperator etcd
$ oc get clusteroperator etcd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して etcd の正常性を確認します。
コントロールプレーンノードへのリモートシェルセッションを開きます。
oc rsh -n openshift-etcd etcd-node-0
$ oc rsh -n openshift-etcd etcd-node-0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エンドポイントの正常性を確認します。予想される出力
は、エンドポイントの正常であること
を示します。etcdctl endpoint health
# etcdctl endpoint health
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを入力して、すべてのノードが準備状態にあることを確認します。予想される出力には、各ノードエントリーの横に
Ready
ステータスが表示されます。oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、クラスター Operator がすべて使用可能であることを確認します。予想される出力には、各 Operator が表示され、一覧表示される各 Operator の横にある
True
として available ステータスが表示されます。oc get ClusterOperators
$ oc get ClusterOperators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、クラスターのバージョンが正しいことを確認します。
oc get ClusterVersion
$ oc get ClusterVersion
Copy 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.5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow