(3)Agent-basedインストール
AirGAP環境におけるRed Hat OpenShift(以下OpenShift)のインストール方式についてです。この方法では、RHCOSのISOイメージを使用するため、ブートストラップノードやWebサーバ(PXEブート環境やIgnition Configを配布するための用途)が不要となります。これにより、事前準備の負荷やリソースを削減し、簡易的にインストールすることが可能です。今回のインストールは、vSphere環境の仮想マシン上で行います。
大まかな流れ
- ノードの準備
- Installer、DNS準備
- RHCOS ISOイメージ作成
- Rendezvousホストのインストール
- その他ノードのインストール
- OpenShiftクラスタ起動確認
- インストール後設定
OpenShiftクラスタ構成イメージ
今回はvSphere上の仮想マシンにOpenShiftクラスタをインストールします。control Plane 3ノード、worker 1ノードでクラスタを構成します。インストール時にAPIのエンドポイントとIngressのエンドポイントをOpenShiftクラスタ内にVirtual IPとして用意します。
ノードリソースの最小要件
インストール手順
ノードの準備
- 仮想マシンをノード数分用意する
- 各仮想マシンで [disk.EnableUUID] のパラメータを”true”にしておく
openshift-Installer、DNSサーバ準備
インストールに使うファイルの準備
ミラー用ホストで OpenShift Cluster Manager の vSphere locally with Agentのページから以下ファイルをダウンロードし、踏み台サーバに持ち込んでおいてください。
- openshift-installer
- OpenShift CLI (以下oc)
- Pull Secret
openshift-installerとopenshift clientのtar.gzを解凍し、PATHが通っている場所に配置ます。
それぞれのコマンドが実行できること、バージョンがインストールバージョンと合致していることを確認してください。
DNSサーバ準備
DNSサーバに以下のエントリを登録します。
OpenShiftのインストール前に設定されている必要があります。完全なDNSレコードは <component>.<cluster_name>.<base_domain>. の形式を取ります。
正引きとして A/AAAA または CNAME レコード、および逆引きとして PTR レコードを登録します。ワイルドカード付のingressVIPに関しては、逆引きレコードの登録は不要です。
※ホスト名が以下の命名規則に従っていない場合、インストールに失敗する可能性がありますので注意してください。
RHCOS ISOイメージ作成
install-config.yaml作成
1. baseDomainを指定します。
2.workerのノード数を指定します。
3.control Planeのノード数を指定します。
4.クラスター名を指定します。
5.platformをvsphere、baremetal、または none を設定します。
vSphereの接続情報を記載する部分ですが、OpenShift v4.14では情報が無視されるので記載しません。apiVIPとingressVIPをそれぞれ指定します。
api VIP
OpenShiftクラスタのAPIサーバにアクセスするための仮想IPアドレス
コントロールプレーンに対するAPIリクエストを一元化し、負荷分散を行います。
Ingress VIP
外部からクラスタ内のサービスにアクセスするための仮想IPアドレス
外部トラフィックを適切なサービスにルーティングし、
クラスタ内のアプリケーションにアクセスできるようにします。
6.ミラーレジストリの認証情報(ユーザー、パスワード情報)を設定します。
(2)ミラーレジストリ構築編で作成した認証情報ファイル(mirror-pull-secret.txt)の内容を貼り付けます。
7.core ユーザーのssh鍵を作成し、公開鍵を設定します。
公開鍵ファイル(/home/ocpuser/.ssh/id_rsa.pub)の内容を貼り付けます。
インストール時に各ノードにアップロードすることで、踏み台サーバからRHCOSノードにsshログインできるようにします。
8.インストール時に使用するローカルのレジストリを設定します。
mirrors
ミラーレジストリのURLを指定します。
source
オリジナルのイメージが格納されているリポジトリのURLなので変更は不要です。
9.ミラーレジストリの証明書を設定します。
ミラーレジストリのCA証明書ファイル(/var/lib/quay/quay-rootCA/rootCA.pem)の内容を貼り付けます。
agent-config.yaml作成
- コントロールプレーンのうちの1ホストのIPアドレスを指定します。
- ノードの種別としてmasterまたはworkerを指定します。
ISOイメージ作成
nmstatectl インストール
agent-config.yamlのnmstateの構文を解釈できるようにnmstatectlをインストールします。
ISOイメージに含まれるソフトウェアパッケージから、もしくはミラー用ホストでパッケージをダウンロードして持ち込みインストールしてください。
ISOイメージ作成
今回は/home/ocpuser/agentディレクトリをインストールディレクトリとします。
/home/ocpuser/agentディレクトリ配下に install-config.yaml、agent-config.yaml を配置して、openshift-installコマンドでISOイメージを作成します。
※ISOイメージが作成されると、install-config.yaml と agent-config.yaml は、agentディレクトリ配下からなくなるので、バックアップを取得しておいてください。
agentディレクトリ確認
agentディレクトリ配下にISOイメージ、authディレクトリが作成されていることを確認します。
Rendezvousホストのインストール
作成したISOファイルをRendezvousホストの仮想マシンにマウント
今回はRendezvousホストとしてvm-m1を選択します。
仮想マシンからアクセス可能なデータストアにISOイメージを配置しておいてください。vCenterにログインしたら、vm-m1用の仮想マシンの設定を編集し、‘agent.x86_64.iso’をマウントします。「接続済み」にチェックを入れてください。
l Rendezvousホスト起動
Rendezvousホスト起動
仮想マシンの電源を入れます。ブートマネージャー画面で仮想マシンがCD/DVDドライブにマウントされたISOイメージから起動する設定の「EFI VMware Virtual SATA CDROM Drive (0.0)」を選択します。
ネットワークチェック
この画面は、OpenShiftなどの環境をセットアップする際のネットワークブートプロセスの一部です。具体的には、Agent Installer Network Boot Setupと呼ばれる画面で、初期のシステムチェック結果を収集している途中であることを示しています。この段階では、システムは必要な設定を確認し、ネットワーク経由で必要なデータを取得し始めています。これにより、システムが正常に起動し、設定に必要な情報を取得する準備をしています。
続いて、この画面は、エージェントベースのインストーラーによる接続性チェックが成功したことを示しています。具体的には、ネットワーク設定が問題なくチェックをクリアし、追加のネットワーク設定は必要ないという状況です。
その後、ホストのネットワーク設定を変更したいかどうかの確認画面が表示されます。「Yes」を選ぶとネットワーク設定の変更が可能で、「No」を選ぶと現在の設定のまま続行されます。
踏み台サーバコンソール確認
以下のように他のノードを待つ状態であることを表す出力が出ていれば、Rendezvousホストのインストールは成功です。
その他ノードのインストール
インストール進捗確認
踏み台サーバでクラスタインストールの進捗ログを確認するコマンドを実行しておきます。
ISOファイルをその他のノードの仮想マシンにマウント
Rendezvousホスト同様、その他ノードの仮想マシンに ‘agent.x86_64.iso’ をマウントします。忘れずに「接続済み」にチェックを入れてください。
その他ノード起動
全ノードの仮想マシンを起動します。
インストール開始の確認
その他のノードも構成に問題がなければ、順次ノードがクラスタに登録されます。
最終的に、Rendezvous ホストのコンソールで “Cluster installation in progress” と表示されれば、クラスタインストールが始まります。
※20-30分経ってもクラスタインストールが始まらない場合は、何かしら失敗している可能性が高いので、踏み台サーバで実行している openshift-install agent wait-forbootstrap-complete コマンドのログを見てください。
インストール進捗確認
インストール進捗のログで “Install complete!” の表示が出力されるまで待ちます。
仮想マシン起動後は待つだけで特に操作の必要はありません。インストールが進むと、最終段階で仮想マシンの再起動がかかります。今回の環境では40分ほどでインストールが完了しました。
OpenShiftクラスタ起動確認
kubeconfigの配置
クラスタにアクセスしcluster-admin権限で操作するため、踏み台サーバでkubeconfigファイルの設定をします。設定方法は次の2種類があります。
ユーザのホームディレクトリに配置する方法
~/.kube/configとしてKubeconfigファイルを配置する。
環境変数を設定する方法
KUBECONFIG環境変数にkubeconfigファイルを指定する。
ノードのステータス確認
oc get nodeコマンドの結果の STATUS行が全て ”Ready” になるまで待ちます。
WEBコンソールログイン確認
kubeadminユーザでログインできることを確認します。パスワードは/home/ocpuser/agent/auth/kubeadmin-password ファイルを参照してください。
クラスターオペレーターのステータス確認
oc get coコマンドの結果のAVAILABLE 行が全て ”True” になるまで待ちます。
クラスタインストールは以上で完了です!
ラストスパートです。クラスタを利用できるようにセットアップしましょう。
インストール後設定
デフォルトのOperatorHubカタログの無効化
Operator カタログおよびコミュニティープロジェクトは、OpenShiftインストール時にデフォルトで OperatorHub に設定されています。ネットワークが制限された環境では、デフォルトのカタログを無効にする必要があります
ミラーリング用リソース適用
ローカルディスクからミラーレジストリにミラーリングしたときに生成されたoc-mirror-workspace/ ディレクトリのresultsディレクトリにImageContentSourcePolicyのYAMLファイルが存在します。
これらリソースをクラスタに適用する必要があります。
ImageContentSourcePolicyからImageDigestMIrrorSetへの変換
oc adm migrateコマンドで、変換対処のImageContentSourcePolicyのYAMLファイルと、ImageDigestMirrorSet YAML ファイルの出力先ディレクトリを指定して実行します。
ImageDigestMIrrorSetリソースの適用
ImageDigestMIrrorSetのYAMLファイルをクラスタに適用します。
リソースが正常にインストールされたことを確認します。
CatalogSourceリソースの適用
CatalogSourceのYAMLファイルをクラスタに適用します。
リソースが正常にインストールされたことを確認します。
ミラーリングしたOperatorが表示されていることを確認
表示されるまでに数分かかる場合があります。
l リリースイメージの署名リソースの適用
リリースイメージの署名リソースの適用
リリースイメージの署名のYAMLファイルをクラスタに適用します。
リリースイメージの署名のYAMLファイルをクラスタに適用します。
クラスタセットアップは以上で完了です!
最後に
Agent-based方式でのRed Hat OpenShiftインストールは、通常のUPI方式やIPI方式と比較して、事前設定や準備が簡素化されていることを実体験できました。
とはいえ、AirGAP環境での実施となると、作業ボリュームはなかなか大きくなりますね。
特にイメージのミラーリングに関しては、oc-mirror利用時の細かな制約や仕様を理解し、事前にしっかりと運用ルールを決めておくことが肝心です。運用方法の一例についても今後紹介できればと思いますので、そちらもぜひ参考にしてみてください。
担当者紹介
担当者 立古
サーバ構築の経験をベースに、昨年よりコンテナ技術を学習し、案件に参画しています。
保有資格
- Certified Kubernetes Administrator
- Certified Kubernetes Application Developer