OpenShift Container Platform ヘルパー・ノード
すべての OpenShift Container Platform V4.x アクセラレーターには、ヘルパー・ノードが含まれています。 ヘルパー・ノードは、OpenShift クラスターのインストール、構成、およびアクセスに使用される複数のサービスを管理します。
注: OpenShift Container Platform 4.9 には、関連するすべてのバージョンをデプロイする機能が用意されています。
サービスには、以下のサーバーが含まれます。
- HA プロキシー・サーバー - ロード・バランシング・サービスとプロキシー・サービスを提供します
- HTTP サーバー - RHCOS ノードは、HTTP サーバーから ignition config ファイルをダウンロードします。
- DNS サーバー - IP アドレスと名前を解決します
- NFS サーバー - OpenShift イメージ・リポジトリー用のストレージを提供します
- DHCP サーバー - RHCOS ノードの MAC アドレスに基づく静的 IP アドレス割り当てを提供します
高可用性
高可用性のために、 OpenShift Container Platform V4.x アクセラレーターには、1 次ヘルパー・ノードと 2 次ヘルパー・ノードが含まれています。 一度にアクティブにできるヘルパー・ノードは 1 つのみです。 アクティブ・ヘルパー・ノードへのアクセスは、「フローティング」または仮想 IP アドレスによって処理されます。 1 次ヘルパー・ノードで障害が発生すると、2 次ヘルパー・ノードがアクティブ・ヘルパー・ノードになります。 1 次ヘルパー・ノードがリストアされると、制御は自動的に 1 次ヘルパー・ノードに戻ります。
ヘルパー・ノード・アクセラレーター・コンポーネント
1 次ヘルパー・ノードは、以下のコンポーネントを持つ標準 RHEL イメージです。
- OpenShift ヘルパー・ノード・スクリプト・パッケージ
- デフォルト・ディスク追加用
- デフォルト NIC 追加用
OpenShift ヘルパー・ノード・スクリプト・パッケージは、デプロイされたパターンとともにヘルパー・ノードに自動的にコピーされます。 このスクリプト・パッケージは、ヘルパー・ノードを構成し、OpenShift インストール・プロセスを開始します。 「デフォルト・ディスク追加用」コンポーネントは、イメージ・レジストリー用に OpenShift で使用される追加の 100 GB ディスクを定義します。 「デフォルト NIC 追加用」コンポーネントは、1 次および 2 次ヘルパー・ノードの仮想 IP アドレスの管理に使用される追加のネットワーク・インターフェースを定義します。 2 次ヘルパー・ノードには、OpenShift ヘルパー・ノード・スクリプト・パッケージのみが含まれます。
個々のアクセラレーター・バージョンの仕様については、対応するハーウェア仕様のページを参照してください。
ヘルパー・ノードへのアクセス
root ユーザー・アカウントと virtuser ユーザー・アカウントのアクセス資格情報は、デプロイメント時にヘルパー・ノードに提供されます。 次のコマンドを実行します。
ssh root@primary_helper_ip
RHCOS ノードへのアクセス
virtuser アカウントには公開 SSH 鍵を指定できます。 指定すると、公開 SSH 鍵は各 RHCOS ノードに追加されます。 問題判別のために、秘密鍵を使用していずれかの RHCOS ノードにログインできます。
ssh -i private_ssh_key core@coreos_ip_address
デプロイメント時に公開 SSH 鍵が提供されない場合、ヘルパー・ノードは公開または秘密 SSH 鍵ペアを生成します。 1 次ヘルパー・ノードから秘密 SSH 鍵を取得します。 ローカル仮想マシンからコア仮想マシンにログインする場合は、以下のステップを実行します。
- ヘルパー・ノードで次のコマンドを実行します。
chmod 774 /ocp-helper/artifacts/core_rsa
- ローカル仮想マシンで次のコマンドを実行します。
scp virtuser@:/ocp-helper/artifacts/core_rsa /path/core_rsa
chmod 400 /path/core_rsa
ssh -i core_rsa core@coreos_ip_address
ヘルパー・ノードからコア OS ノードにログインする場合は、以下のコマンドを実行します。
chmod 400 /ocp-helper/artifacts/core_rsa
ssh -i core_rsa core@coreos_ip_address
OpenShift クラスターへのアクセス
OpenShift クラスターがデプロイされると、そのクラスターに関する以下の情報がデプロイメント履歴に表示されます。
- OpenShift Web コンソールにアクセスするための URL
- クラスターへの初回ログインに必要な kubeadmin パスワードの取得
- クラスターへのアクセスを許可するように DNS サーバーを構成する方法についての説明
デプロイメント履歴に表示されるクラスター情報の例は次のとおりです。
Script package OpenShift Helper Node on virtual machine Helper.11582556062330 completed successfully
OpenShift web-console:
— https://console-openshift-console.apps.ocp4.example.com
Issue the following command along with your Helper Node password to retrieve the OpenShift kubeadmin password:
— ssh virtuser@9.9.9.9 echo "kubeadmin password is: \$(cat /kubeadmin-password)"
Add the following wildcard entries to your DNS server to access the OpenShift web-console, apps, and APIs:
— *.ocp4.example.com IN A 9.9.9.9
— *.apps.ocp4.example.com IN A 9.9.9.9
or for testing purposes add the following /etc/hosts entry to access the OpenShift web-console:
— 9.9.9.9 console-openshift-console.apps.ocp4.example.com oauth-openshift.apps.ocp4.example.com
OpenShift Container Platform install completed successfully
構成パラメーター
アクセラレーターのデプロイ時には、以下の構成情報が必要です。
- OpenShift バージョン
アクセラレーターがデプロイされている場合、以下の構成情報はオプションです。
- OpenShift クラスター名 - 指定しない場合、1 次ヘルパー・ノードのフローティング IP のホスト名がクラスター名に使用されます。
- OpenShift ベース・ドメイン - 指定しない場合、1 次ヘルパー・ノードのフローティング IP のドメイン・ネームがベース・ドメイン名に使用されます。
- OpenShift イメージ・レジストリー用の OpenShift 代替 NFS サーバー - 指定しない場合、1 次ヘルパー・ノード上の NFS ボリュームが OpenShift イメージ・レジストリーに使用されます。
- OpenShift イメージ・レジストリー用の OpenShift 代替 NFS パス
- OpenShift ミラー・レジストリー - OpenShift イメージを含むミラー・レジストリーの完全修飾ドメイン名[:port]。 ミラー・レジストリーがデフォルト・ポート (443) で listen しない場合は、ポートをレジストリー名に付加する必要があります。 提供されない場合、 OpenShift ミラーレジストリ名は、 IBM Cloud Pak® System レジストリサービス共有サービスから取得される。
OpenShift イメージ・レジストリー構成-デフォルトでは、 OpenShift Container Platform 4.x アクセラレーターには、 OpenShift イメージ・レジストリーに使用される addOn ディスクが含まれています。 インストール・プロセス中に、ヘルパー・ノードは、イメージ・レジストリーにこのボリューム (NFS エクスポート) を使用するように OpenShift を構成します。 ボリュームのデフォルト・サイズは 100 GB です。 このサイズを変更するには、1 次ヘルパー・ノードの「デフォルト・ディスク追加用」コンポーネントのディスク・サイズ・パラメーターを変更します。 ヘルパー・ノードの内部 NFS サーバーを使用する代わりに、独自の実動 NFS サーバーを使用して OpenShift イメージ・レジストリーを管理できます。 4.x アクセラレーターには、 NFS サーバーの名前とエクスポート・パスを指定できる 2 つのパラメーターが用意されています。 このパラメーターは OCP_ALTERNATE_NFS_SERVER と OCP_ALTERNATE_NFS_PATH です。
プライベート Docker レジストリー - OpenShift をインストールするには、OpenShift インストール・イメージをプライベート Docker レジストリーにロードする必要があります。 ヘルパー・ノードは、 Cloud Pak® Registry Service という名前の共有サービスを介してプライベート Docker レジストリーにアクセスします。 システム・レジストリー・サービスが構成されていない場合は、デプロイされたアクセラレーターで OCP_REGISTRY_NAME パラメーターにプライベート Docker レジストリーの名前を指定できます。 プライベート Docker レジストリーがデフォルト・ポート (443) で listen しない場合は、ポート番号をレジストリー名と一緒に指定する必要があります。 例えば、ipas-pvm-144-035.purescale.raleigh.ibm.com:5000です。 セキュア Docker プライベート・レジストリーを使用する場合は、System Registry Service を構成する必要があることに注意してください。
IBM Cloud Pak System V2.3.3.0 以上をお使いの場合は、 OpenShift Container Platform for HAアクセラレータパラメータをご覧ください。
デプロイメントに関する問題の解決
ヘルパー・ノードによって生成されたログ・ファイルにアクセスするには、IBM Cloud Pak デプロイメント・ページでヘルパー・ノードに関連付けられている「ログ・ビューアー」リンクを使用します。 ログ・ファイルを表示するには、ログ・ビューアーを開き、ログ・ディレクトリー OpenShift_Helper_Node_Script/ocp_helper/log/ にナビゲートします。ヘルパー・ノードでサービスを構成しているときにデプロイメント障害が発生した場合は、ログ・ビューアーを開いて main_config.log ファイルを確認します。 OpenShift ブートストラップ・ノードのインストール中にデプロイメント障害が発生した場合は、ログ・ビューアーを開き、openshift_install_bootstrap.log ファイルを確認します。 オプションで、ブートストラップ・ノードにログインし、次のコマンドを実行して、1 次ブートストラップ・サービスの状況を確認できます。
journalctl -b -f -u bootkube.service
OpenShift ブートストラップ・ノードが正常にインストールされた後にデプロイメント障害が発生した場合は、ログ・ビューアーを開き、openshift_install.log ファイルを確認します。
また、 /ocp-helper にある 1 次ヘルパーの std.out ファイルを参照して、エラーをデバッグすることもできます。
より詳細な問題分析
1 次ヘルパー・ノードにログインし、/ocp-helper ディレクトリーに移動します。 このディレクトリーとログ・ディレクトリーにログ・ファイルがあります。 さらに、ヘルパー・ノードの構成中に作成されるさまざまな成果物が、成果物ディレクトリーにあります。 vars.yaml や install-config.yaml などの主な成果物ファイルを調べると、デプロイメント障害の手掛かりが得られる場合があります。 また、ヘルパー・ノードは OpenShift クライアントを使用しても構成されます。 OpenShift クライアントを使用すると、OpenShift クラスターのすべての側面を調べることができます。 便利な OpenShift クライアント・コマンドの中には次のものがあります。
クラスター・オペレーターの状況を確認します。
oc get co
クラスター内のノードの状況を確認します。 リソース割り振り (cpu または memory) が許容できることを確認します。
oc get nodes
oc describe node <node>
サービスの状況を確認します。 ヘルパー・ノードで実行中のサービスの状況を確認するには、次のコマンドを実行します。
helpernodecheck services
新しい OpenShift バージョンをサポートするためのスクリプト・パッケージの更新方法
注: OpenShift Container Platform アクセラレーター V4.3.1 を使用している場合は、このセクションを無視できます。
OpenShift ヘルパー・ノード・スクリプト・パッケージは、複数の OpenShift バージョンをサポートできます。 IBM Cloud Pak System 2.3.2.0 では、 OpenShift Helper Node スクリプト・パッケージは OpenShift V4.2.18 と OpenShift V4.3.1 をサポートしています。 IBM Cloud Pak System 2.3.3.0 では、 OpenShift Helper Node スクリプト・パッケージは OpenShift V4.3.1 と OpenShift V4.4.6 をサポートしています。 追加の OpenShift バージョンをデプロイする場合は、OpenShift ヘルパー・ノード・スクリプト・パッケージを、特定の OpenShift バージョン用の追加の OpenShift クライアント・コンポーネントで更新する必要があります。 2 つの OpenShift コンポーネントは次のとおりです。
openshift-installeropenshift-client
OpenShift ヘルパー・ノード・スクリプト・パッケージを更新するには、以下のステップを実行します。
- IBM Cloud Pak System から、 Catalog > Script Packages ページに移動します。
- OpenShift ヘルパー・ノード・スクリプト・パッケージを複製します。
- 複製されたスクリプト・パッケージをダウンロードします。
- スクリプト・パッケージを unzip します。
- RedHat から新しい
openshift-installファイルおよびopenshift-clienttgz ファイルをダウンロードします。 - ダウンロードしたファイルを
ocp-helper/depsディレクトリーにコピーします。 cbscript.jsonファイル内のversion: parameterを、複製されたスクリプト・パッケージのバージョンと一致するように更新します。ocp-helperディレクトリーを圧縮します。- IBM Cloud Pak System のクローンスクリプトパッケージページから、新しいスクリプトパッケージアーカイブをアップロードします。
新しい OpenShift ヘルパー・ノード・スクリプト・パッケージを使用するには、以下のようにします。
- OpenShift Container Platform 4.x アクセラレーターを複製します。
- 複製したアクセラレーターを開き、 OpenShift ヘルパー・ノードのスクリプト・パッケージ・バージョンを更新します。
- OpenShift バージョンのアクセラレーター・パラメーターを更新します。
- 新しいアクセラレーターを保存してデプロイします。
デプロイメントに関する問題の解決
ヘルパー・ノードによって生成されたログ・ファイルにアクセスするには、
IBM Cloud Pak System ユーザー・インターフェースの「デプロイ」ページにある「ログ・ビューアー」リンクを使用します。 ログ・ファイルを表示するには、「ログ・ビューアー」を開き、ログ・ディレクトリー OpenShift_Helper_Node_Script/ocp_helper/log/ に移動します。
また、「Must Gather」ログ収集にも、ocp-helper ログが script_log.zip ファイルに含まれます。