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 鍵を取得します。 ローカル仮想マシンからコア仮想マシンにログインする場合は、以下のステップを実行します。

  1. ヘルパー・ノードで次のコマンドを実行します。
chmod 774 /ocp-helper/artifacts/core_rsa
  1. ローカル仮想マシンで次のコマンドを実行します。
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_SERVEROCP_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.yamlinstall-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-installer
  • openshift-client

OpenShift ヘルパー・ノード・スクリプト・パッケージを更新するには、以下のステップを実行します。

  1. IBM Cloud Pak System から、 Catalog > Script Packages ページに移動します。
  2. OpenShift ヘルパー・ノード・スクリプト・パッケージを複製します。
  3. 複製されたスクリプト・パッケージをダウンロードします。
  4. スクリプト・パッケージを unzip します。
  5. RedHat から新しい openshift-install ファイルおよび openshift-client tgz ファイルをダウンロードします。
  6. ダウンロードしたファイルを ocp-helper/deps ディレクトリーにコピーします。
  7. cbscript.json ファイル内の version: parameter を、複製されたスクリプト・パッケージのバージョンと一致するように更新します。
  8. ocp-helper ディレクトリーを圧縮します。
  9. IBM Cloud Pak System のクローンスクリプトパッケージページから、新しいスクリプトパッケージアーカイブをアップロードします。

新しい OpenShift ヘルパー・ノード・スクリプト・パッケージを使用するには、以下のようにします。

  1. OpenShift Container Platform 4.x アクセラレーターを複製します。
  2. 複製したアクセラレーターを開き、 OpenShift ヘルパー・ノードのスクリプト・パッケージ・バージョンを更新します。
  3. OpenShift バージョンのアクセラレーター・パラメーターを更新します。
  4. 新しいアクセラレーターを保存してデプロイします。

デプロイメントに関する問題の解決

ヘルパー・ノードによって生成されたログ・ファイルにアクセスするには、 IBM Cloud Pak System ユーザー・インターフェースの「デプロイ」ページにある「ログ・ビューアー」リンクを使用します。 ログ・ファイルを表示するには、「ログ・ビューアー」を開き、ログ・ディレクトリー OpenShift_Helper_Node_Script/ocp_helper/log/ に移動します。

また、「Must Gather」ログ収集にも、ocp-helper ログが script_log.zip ファイルに含まれます。