This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第8章 ホストの既存クラスターへの追加
8.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターのインストール方式に応じて、インストールツールによるクイックインストールか、または scaleup.yml Playbook による通常インストール (Advanced installation) を使用して新規ホスト (ノードまたはマスター) をインストールに追加できます。
8.2. クイックインストーラーツールを使用したホストの追加 リンクのコピーリンクがクリップボードにコピーされました!
クイックインストールツールを使用して OpenShift Container Platform クラスターをインストールした場合は、クイックインストールツールを使用して新規ノードホストを既存クラスターに追加できます。
現時点では、クイックインストーラーツールを使用して新規マスターホストを追加することはできません。新規マスターホストを追加するには、通常インストール (Advanced installation) 方式を使用する必要があります。
インストーラーを対話型モードまたは無人モードのいずれかで使用した場合は、インストール設定ファイルが ~/.config/openshift/installer.cfg.ymlにある限り (または -c
オプションで別の場所を指定して)、インストールを再実行できます。
推奨される最大ノード数については、「Cluster Limits」セクションを参照してください。
ノードをインストールに追加するには、以下を実行します。
atomic-openshift-utils パッケージを更新して最新のインストーラーと Playbook を取得します。
yum update atomic-openshift-utils
# yum update atomic-openshift-utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 対話型モードまたは無人モードで
scaleup
サブコマンドを使用してインストーラーを実行します。atomic-openshift-installer [-u] [-c </path/to/file>] scaleup
# atomic-openshift-installer [-u] [-c </path/to/file>] scaleup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストーラーによって現在の環境が検出され、ノードを追加できるようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow (y) を選択し、画面の指示に従って必要なタスクを完了します。
8.3. ホストの追加 リンクのコピーリンクがクリップボードにコピーされました!
scaleup.yml Playbook を実行して新規ホストをクラスターに追加できます。この Playbook は、マスターをクエリーし、新規ホストの新規証明書を生成して配布し、これらの新規ホストでのみ、設定 Playbook を実行します。scaleup.yml Playbook を実行する前に、前提条件となるホストの準備手順をすべて完了してください。
scaleup.yml の Playbook は新規ホストの設定のみを実行します。マスターサービスの NO_PROXY の更新やマスターサービスの再起動は行いません。
scaleup.yml Playbook を実行するには、現在のクラスター設定を表す既存のインベントリーファイル (/etc/ansible/hosts など) が必要です。以前に atomic-openshift-installer
コマンドを使用してインストールを実行した場合は、~/.config/openshift/hosts を調べて、インストーラーによって生成された最新のインベントリーファイルを見つけ、それをそのまま使用するか、インベントリーファイルの必要に応じて変更することができます。後で ansible-playbook
を呼び出すときに、-i
オプションを使用してそのファイルを指定する必要があります。
推奨される最大ノード数については、「Cluster Limits」セクションを参照してください。
手順
atomic-openshift-utils パッケージを更新して最新の Playbook を取得します。
yum update atomic-openshift-utils
# yum update atomic-openshift-utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/ansible/hosts ファイルを編集し、 new_<host_type> を [OSEv3:children] セクションに追加します。
たとえば、新規ノードホストを追加するには、new_nodes を追加します。
[OSEv3:children] masters nodes new_nodes
[OSEv3:children] masters nodes new_nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規マスターホストを追加するには、new_masters を追加します。
[new_<host_type>] セクションを作成して、新規ホストのホスト情報を指定します。このセクションは、以下の新規ノードの追加例で示されているように、既存のセクションと同じような形式で作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow その他のオプションについては、「ホスト変数の設定」を参照してください。
新規マスターを追加する場合は、[new_masters] セクションと [new_nodes] セクションの両方に新規ホストを追加して。新規マスターホストが OpenShift SDN の一部となるようにします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要マスターホストに
region=infra
ラベルを付け、それ以外に専用インフラストラクチャーノードがない場合は、エントリーにopenshift_schedulable=true
を追加してホストにスケジュール可能であることを示すマークを明示的に付ける必要もあります。そうしないと、レジストリー Pod とルーター Pod をどこにも配置できなくなります。scaleup.yml Playbook を実行します。インベントリーファイルがデフォルトの /etc/ansible/hosts 以外の場所にある場合は、
-i
オプションで場所を指定します。ノードを追加する場合は、以下を指定します。
ansible-playbook [-i /path/to/file] \ /usr/share/ansible/openshift-ansible/playbooks/openshift-node/scaleup.yml
# ansible-playbook [-i /path/to/file] \ /usr/share/ansible/openshift-ansible/playbooks/openshift-node/scaleup.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マスターを追加する場合は、以下を実行します。
ansible-playbook [-i /path/to/file] \ /usr/share/ansible/openshift-ansible/playbooks/openshift-master/scaleup.yml
# ansible-playbook [-i /path/to/file] \ /usr/share/ansible/openshift-ansible/playbooks/openshift-master/scaleup.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Playbook の実行後に、インストールを確認します。
[new_<host_type>] セクションで定義したホストを適切なセクションに移動します。このようにホストを移動することで、このインベントリーファイルを使用するその後の Playbook の実行で、正しくノードが処理されるようになります。[new_<host_type>] セクションは空のままで結構です。たとえば、新規ノードを追加する場合は以下のように指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4. etcd ホストの既存クラスターへの追加 リンクのコピーリンクがクリップボードにコピーされました!
etcd scaleup Playbook を実行して新規 etcd ホストを追加することができます。この Playbook は、マスターをクエリーし、新規ホストの新規証明書を生成してこれを配布し、設定 Playbook を新規ホストにのみ実行します。etcd scaleup.yml Playbook を実行する前に、前提条件となるホストの準備 手順をすべて完了してください。
etcd ホストを既存クラスターに追加するには、以下を実行します。
atomic-openshift-utils パッケージを更新して最新の Playbook を取得します。
yum update atomic-openshift-utils
$ yum update atomic-openshift-utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/ansible/hosts ファイルを編集し、new_<host_type> を [OSEv3:children] グループに、ホストを new_<host_type> グループに追加します。
たとえば、新規 etcd を追加するには、new_etcd を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcd scaleup.yml Playbook を実行します。インベントリーファイルがデフォルトの /etc/ansible/hosts 以外の場所にある場合は、
-i
オプションで場所を指定します。ansible-playbook [-i /path/to/file] \ /usr/share/ansible/openshift-ansible/playbooks/openshift-etcd/scaleup.yml
$ ansible-playbook [-i /path/to/file] \ /usr/share/ansible/openshift-ansible/playbooks/openshift-etcd/scaleup.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードラベルを
logging-infra-fluentd: "true"
に設定します。oc label node/new-node.example.com logging-infra-fluentd: "true"
# oc label node/new-node.example.com logging-infra-fluentd: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Playbook が正常に完了したら、インストールを確認します。
8.5. 共存する etcd での既存のマスターの置き換え リンクのコピーリンクがクリップボードにコピーされました!
マシンを別のデータセンターに移行し、割り当てられているネットワークと IP が変更される場合には、以下の手順を実行します。
プライマリー etcd およびマスターノードをバックアップします。
重要「etcd のバックアップ」の説明にあるように、/etc/etcd/ ディレクトリーがバックアップされていることを確認します。
- 置き換えるマスターの数だけ、新規マシンをプロビジョニングします。
クラスターを追加または拡張します。たとえば、etcd が共存するマスターを 3 つ追加する場合には、マスターノード 3 つまたは etcd ノード 3 つに拡張します。
-
マスターを追加します。このプロセスのステップ 3 で、
[new_masters]
と[new_nodes]
に新規データセンターのホストを追加して、マスターの scaleup.yml Playbook を実行します。 - 同じホストを etcd セクションに配置して、etcd scaleup.yml Playbook を実行します。
ホストが追加されたことを確認します。
oc get nodes
# oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マスターホストの IP が追加されたことを確認します。
oc get ep kubernetes
# oc get ep kubernetes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcd が追加されたことを確認します。
ETCDCTL_API
の値は、使用するバージョンにより異なります。source /etc/etcd/etcd.conf ETCDCTL_API=2 etcdctl --cert-file=$ETCD_PEER_CERT_FILE --key-file=$ETCD_PEER_KEY_FILE \ --ca-file=/etc/etcd/ca.crt --endpoints=$ETCD_LISTEN_CLIENT_URLS member list
# source /etc/etcd/etcd.conf # ETCDCTL_API=2 etcdctl --cert-file=$ETCD_PEER_CERT_FILE --key-file=$ETCD_PEER_KEY_FILE \ --ca-file=/etc/etcd/ca.crt --endpoints=$ETCD_LISTEN_CLIENT_URLS member list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - /etc/origin/master ディレクトリーから、インベントリーファイルの最初に記載されている新規マスターホストに、/etc/origin/master/ca.serial.txt をコピーします。デフォルトでは、これは /etc/ansible/hosts です。
-
マスターを追加します。このプロセスのステップ 3 で、
etcd ホストを削除します。
- /etc/etcd/ca ディレクトリーを、インベントリーファイルの最初に記載されている新規 etcd ホストにコピーします。デフォルトでは、これは /etc/ansible/hosts です。
master-config.yaml ファイルから以前の etcd クライアントを削除します。
grep etcdClientInfo -A 11 /etc/origin/master/master-config.yaml
# grep etcdClientInfo -A 11 /etc/origin/master/master-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マスターを再起動します。
systemctl restart atomic-openshift-master-*
# systemctl restart atomic-openshift-master-*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターから以前の etcd メンバーを削除します。
ETCDCTL_API
の値は、使用するバージョンにより異なります。source /etc/etcd/etcd.conf ETCDCTL_API=2 etcdctl --cert-file=$ETCD_PEER_CERT_FILE --key-file=$ETCD_PEER_KEY_FILE \ --ca-file=/etc/etcd/ca.crt --endpoints=$ETCD_LISTEN_CLIENT_URLS member list
# source /etc/etcd/etcd.conf # ETCDCTL_API=2 etcdctl --cert-file=$ETCD_PEER_CERT_FILE --key-file=$ETCD_PEER_KEY_FILE \ --ca-file=/etc/etcd/ca.crt --endpoints=$ETCD_LISTEN_CLIENT_URLS member list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドの出力から ID を取得して、この ID で以前のメンバーを削除します。
etcdctl --cert-file=$ETCD_PEER_CERT_FILE --key-file=$ETCD_PEER_KEY_FILE \ --ca-file=/etc/etcd/ca.crt --endpoints=$ETCD_LISTEN_CLIENT_URL member remove 1609b5a3a078c227
# etcdctl --cert-file=$ETCD_PEER_CERT_FILE --key-file=$ETCD_PEER_KEY_FILE \ --ca-file=/etc/etcd/ca.crt --endpoints=$ETCD_LISTEN_CLIENT_URL member remove 1609b5a3a078c227
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以前の etcd ホストで etcd サービスを停止して、無効化します。
systemctl stop etcd systemctl disable etcd
# systemctl stop etcd # systemctl disable etcd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以前のマスター API とコントローラーサービスをシャットダウンします。
systemctl stop atomic-openshift-master-api
# systemctl stop atomic-openshift-master-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ネイティブのインストールプロセス時にデフォルトでロードバランサーとしてインストールされていた、マスターノードを、HA プロキシー設定から削除します。
マシンの使用を停止します。
削除するマスター上の
atomic-openshift-node
サービスを停止します。systemctl stop atomic-openshift-node
# systemctl stop atomic-openshift-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードリソースを削除します。
oc delete node
# oc delete node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.6. ノードの移行 リンクのコピーリンクがクリップボードにコピーされました!
ノード上のサービスの実行方法やスケーリング方法、慣れた方法により、ノードを個別での移行や、グループ (2、5、10 ずつなど) 単位での移行が可能です。
- 移行するノードについては、新規データセンターでのノードの使用のために新規の仮想マシンをプロビジョニングします。
- 新規ノードを追加するには、インフラストラクチャーを拡大します。新規ノードのラベルが適切に設定されており、新規 API サーバーがロードバランサーに追加され、トラフィックを適切に送信していることを確認します。
評価し、縮小します。
ノードを削除します。
- ノードが空であり、実行中のプロセスがないことを確認します。
- サービスを停止するか、またはノードを削除します。