Openshift on Nutanix AHVをOpenshift Assisted Installerで半自動UPIインストール


はじめに

この記事はNutanix Advent Calendar 2021の12/12分のエントリその2です。

Nutanix AOS/AHV上にRedhat Openshiftを導入する手順について、Redhat製のAssisted Installerを使い半自動でUPIインストールします。

Redhat OpenShift Assisted Installerは複雑なUPIインストール手順を簡略化し、さらにIPIインストールのメリットの一部(APIエンドポイントとIngressにVRRPを採用しており、DNSレコードがシンプルで済む)も享受できるようになるようです。

Redhat社とNutanix社のパートナーシップ後に赤帽ブログでもいち早くこのAssisted Installerを使ったシングルノードクラスタ(Openshift 4.9にてGA済)のインストール手順が紹介されていました。(Redhat田中さんありがとうございます!)

注意) 2021/12時点でAssisted InstallerはTech Previewのステータスであり、特に本番環境での利用に関してはサポート面に関してこちらを要参照となります。

前提情報

バージョン情報

Nutanix AOS: 5.20
Openshift: 4.9
Nutanix CSI: 2.4.3

構成

リソース情報

Openshiftクラスタ

マシン FQDN CPU数 コア数/CPU RAM(GB) ストレージ(GiB) IPアドレス
ControlPlane-0 master0.(クラスタ名).(ドメイン名) 2 2 16 120 10.42.9.171
ControlPlane-1 master1.(クラスタ名).(ドメイン名) 2 2 16 120 10.42.9.172
ControlPlane-2 master2.(クラスタ名).(ドメイン名) 2 2 16 120 10.42.9.173
Compute-0 worker0.(クラスタ名).(ドメイン名) 1 2 8 120 10.42.9.181
Compute-1 worker1.(クラスタ名).(ドメイン名) 1 2 8 120 10.42.9.182

API Virtual IP: 10.42.9.191 <-> api.(クラスタ名).(ドメイン名)
Ingress Virtual IP: 10.42.9.192 <-> apps.(クラスタ名).(ドメイン名)

手順

Assisted Installerでクラスタ作成

Redhat Hybrid Cloud Consoleにログインし、Clutser nameとBase Domainを入力し、"Next"をクリックする。

"Generate Discovery ISO"をクリックします。

Minimal Image fileを選択し、SSH public keyはSSHキーペア作成を参考にSSH公開キーを入力し、"Generate Discovery ISO"をクリックします。

"Discovery ISO URL"をコピーします。

イメージサービスへのISO登録を参考に、Discovery ISOをイメージ登録します。

Bootstrap/ControlPlane/Computeの仮想マシンを作成するを参考に、登録したDiscovery ISOから仮想マシンを作成します。*Bootstrap VMは不要です。

仮想マシンを作成すると作成した仮想マシンがAssisted Installer側に表示されます。要件を満たしていれば"Next"をクリックして進みます。

"Cluster-Managed Networking"でクラスタが属するサブネットを選び、API VIPとIngress VIPを設定します。他はデフォルトで"Next"をクリックします。

設定内容を確認し、"Install cluster"をクリックします。

インストール状況を確認します。

途中、"Pending user action"のステータスに遷移します。ISOディスクをアンマウントし、パワーオンを参考に、ISOディスクをアンマウントします。

インストールが完了しました。

スクリーンショット 2021-12-11 1.57.34.png

"Download kubeconfig"をクリックし、kubeconfigを取得します。
また、Username: kubeadminに対するPassword(後のGUIアクセスで用います。)をコピーし、保存します。

oc CLIでクラスタ確認

ローカルマシンからの名前解決設定を参考に10.42.9.191と10.42.9.192向け名前解決を行います。

hosts
10.42.9.191 api.(クラスタ名).(ドメイン名)
10.42.9.192 console-openshift-console.apps.(クラスタ名).(ドメイン名) oauth-openshift.apps.(クラスタ名).(ドメイン名) downloads-openshift-console.apps.(クラスタ名).(ドメイン名) alertmanager-main-openshift-monitoring.apps.(クラスタ名).(ドメイン名) grafana-openshift-monitoring.apps.(クラスタ名).(ドメイン名) prometheus-k8s-openshift-monitoring.apps.(クラスタ名).(ドメイン名) thanos-querier-openshift-monitoring.apps.(クラスタ名).(ドメイン名)

ダウンロードしたクラスタ向け設定を行った後、oc CLIでクラスタ状態を確認します。

cp kubeconfig-noingress ~/.kube/config
oc cluster-info

クラスタOperatorが正常状態となっていることを確認します。AVAILABLE列が全てTrueであれば正常です。

watch -n5 oc get clusteroperators

GUIでクラスタ確認

以下URLにブラウザでアクセスし、Username、Passwordを入力します。

https://console-openshift-console.apps.(クラスタ名).(ドメイン名)
Username: kubeadmin
Password: 上で確認したパスワード

CSIのインストールとイメージレジストリの構築

Nutanix CSI Operatorのインストール
以降の内容を参照にNutanix CSIのインストールとイメージレジストリの構築を行います。

おわりに

マルチノードでの最小構成OpenshiftクラスタをNutanix上にAssisted Installerによる半自動UPIインストールで立ち上げる方法をご紹介しました。前回ご紹介した完全手動のUPI手順よりもかなり簡略化されましたし、シングルノードによるオールインワン構成での起動も可能となり、開発向け、エッジ向け等多用途に使えます。2021/12時点ではまだTech Preview機能ですが、GAになればIPIインストールがサポートされるまでの強力なOpenshift on AHVインストールツールになると思われます。次回はNutanix Calmを利用した自動化手順をご紹介します。