OpenShift on Nutanix AHV

OpenShift on Nutanix AHV
OpenShift on Nutanix AHV

Red Hatでソリューションアーキテクトをしている田中司恩(@tnk4on)です。

2021年7月29日にRed HatとNutanixの戦略的パートナーシップの発表がありました。

www.redhat.com

Red Hat OpenShiftおよびRed Hat Enterprise Linuxと、Nutanix AOSおよびAHVを含むNutanix Cloud Platformのインストール、相互運用性、管理を可能にします。

Nutanix AHV(以下、AHV)がRed Hat認定ハイパーバイザーになったことで、Nutanix Cloud Platform上のRed Hat Enterprise Linux(以下、RHEL)とOpenShiftのサポートが可能となりました。

Nutanix社のブログ記事はこちら。

www.nutanix.com

前職でNutanix導入の経験もあり、これはやるしかない!ってことで久々にNutanixの構築を行ってその上でOpenShiftを動かしてみました。

-目次-


認定ハイパーバイザーリスト、サポート情報

まず、OpenShiftとAHVのサポート情報について確認してみます。

OpenShift Container Platform(以下、OCP) 4.xのテスト済みのプラットフォームやインフラの情報は下記のTested Integrationsにまとまっています。

Tested Integrationsより抜粋

Red Hat Provides support for Red Hat Enterprise Linux based on the Hypervisors listed in https://access.redhat.com/certified-hypervisors as such OpenShift as a platform is supported on these hypervisors but may not be explicitly listed as a tested Infrastructure Layer

認定ハイパーバイザーリストではRHELについて記載されていますが、プラットフォームとしてのOpenShiftについても同様にリストされているハイパーバイザーでサポートされる、ということのようです。OpenShiftのベースOSとなるRHEL CoreOS(以下、RHCOS)はRHELベースのOSですので、RHELのサポートによってRHCOSもサポートされるようになるというのは特に違和感はありません。

なお、現時点(2021/8/2、時点)ではAHVはTested Integrations にまだ記載がありません。*1

認定ハイパーバイザーについては下記も参考にしてください。

AHVへのOCPのインストール方法

現在サポートされているAHVへのOpenShiftのインストール方法はUPIの「任意のプラットフォームへのインストール」のみです。いわゆるベアメタルUPIべアメタルメソッドと言われる方法です。このブログでも何度もご紹介している方法です。

OCP v4.8対応のIPIとUPIサポートプラットフォーム
OCP v4.8対応のIPIとUPIサポートプラットフォーム

この方法を使えば事実上どんな環境でもOCPのインストールは可能であり、実際に過去にすでにNutanixのコミュニティにAHVへのインストール情報もありました。

インストール手順においてAHV特有の作業などは特に無く、Web GUIのPrismを通してRHCOSのISOを登録、各ノードのVMの作成さえできれば後はOpenShiftのインストール手順に沿って構築が可能です。

PrismでのISOイメージの登録画面
PrismでのISOイメージの登録画面

(参考)AHV上にUPIでOpenShiftをインストールするデモ動画

YouTubeのOpenShiftチャンネルにインストール方法の解説動画がアップされています。

  • UPIでAHVにOpenShiftをインストール
  • Nutanix CSI Operatorのインストール

www.youtube.com

Single Node OpenShift をインストールする

Nutanixを実行する実機は手元のラボ環境には無いのでNutanix Community Edition(Nutanix CE)を使用してAOS/AHV環境を構築します。さらに、Nutanix CEで占有できるハードウェアも無いので、今回はESXi上の仮想マシンとしてNested環境でAOS/AHVを実行します。 なお、AHVはホストメモリのオーバーコミットができないため、 このNested環境でOCP用のノードを複数実行するにはホストとなる物理サーバーにかなりのメモリ容量が必要です。そこで、最小構成でOCPを実行するためにシングルノードで実行するSingle Node OpenShift(以下、SNO)でインストールします。

SNO on AVH on ESXi 構成図
SNO on AVH on ESXi 構成図

SNOを実行する方法はいくつかありますが、一番お手軽な方法としてOpenShift Cluster Manager上で提供されているAssited Installerを使います。Assisted InstallerにSNOのオプションがあるのでこれを利用します*2。なお、現時点でSNOで選択できるOCPのバージョンは「v4.8.2」のみです*3

Assisted InstallerのSNOオプション
Assisted InstallerのSNOオプション

SNO構成のハードウェア要件は下記です(物理、仮想マシン共通)

  • 8 CPU(8 vCPU)
  • 32GiB RAM
  • 120GB のストレージ

インストール時に32GBのメモリが必要ですが*4、OCPのインストール完了後は割り当てメモリ量を減らすことは可能です。16GBあれば実用性は置いておいてSNOでクラスターの起動は可能です。

Prism上のSNO仮想マシン
Prism上のSNO仮想マシン

(参考)Nested構成のためAHV上のVMを起動するには下記オプションの追加が必要

CVM$ acli vm.update SNO cpu_passthrough=true
CVM$ acli vm.get SNO |grep cpu_passthrough
    cpu_passthrough: True

インストールが完了すれば後は普通にOpenShiftとして利用できます。「コントロールプレーンの高可用性」が「なし(単一マスター)」となっていることが確認できます。

OpenShift Webコンソール画面
OpenShift Webコンソール画面

続いてCSIを通してPVを使うためにNutanix CSI Operatorの導入を行います。

Nutanix CSI Operator

OCPにNutanix CSI Operatorを導入するとNutanix VolumesとNutanix Filesを使用したPVの動的プロビジョニングが可能となります。Nutanix VolumesはiSCSI、Nutanix FilesはNFSでのボリューム提供方式となります。

導入手順は下記のGitHubリポジトリを参照ください。

github.com

Nutanix CSI Operator導入前に事前にAHV側で設定を行います。

  • iSCSI用データサービスのIPアドレス追加
  • Storage Containerの作成

Storage Classの作成の中で「iSCSI用データサービスのIPアドレス」と「Storage Container名」を指定するのでこれらの値が必要となります。

OCP側の手順概要は下記の通りです。

  1. Nutanix CSI Operatorのインストール
  2. Nutanix CSI Operatorでインスタンスの作成
  3. Secretの作成
  4. Storage Classの作成

OperatorHubからNutanis CSI Operatorの導入が可能
OperatorHubからNutanis CSI Operatorの導入が可能

GitHubリポジトリの手順ではNutanix Volumesを使用した方法が紹介されていますが、詳細なCSI Volume DriverのパラメーターやNutanix Filesの構成方法は、下記のNutanixのドキュメントを参照ください。

(注意)Nutanix CSI Operatorの導入にはOCP v4.6/4.7が必要

OCP v4.8にNutanix CSI OperatorをインストールするとエラーとなりOperatorのインストールが完了しません。

Nutanix CSI Operator v0.1.3はOCP v4.8に非対応
Nutanix CSI Operator v0.1.3はOCP v4.8に非対応

別立てしたOCP v4.7(v4.7.22)では問題なく手順通りにOperatorのインストールが完了します。

Nutanix CSI Operator v0.1.3 on OCP v4.7.22
Nutanix CSI Operator v0.1.3 on OCP v4.7.22

PVCの作成

Nutanix CSI Operator導入の完了後、OpenShift上でPVCを作成するとAHV上に自動でボリューム作成→PV作成が行われます。

OpenShift上でPVC作成
OpenShift上でPVC作成

AHV上のストレージを確認すると、PVCで作成したボリューム(pvc-で始まる名前)が作成されていることが確認できます。

AHV上に自動作成されたPV用のボリューム
AHV上に自動作成されたPV用のボリューム

まとめ

Red HatとNutanixの戦略的パートナーシップによりRHEL及びOpenShiftのAHV上での実行がサポートされるようになりました。

AHV上へのOpenShiftのインストールはベアメタルUPIに従えば特に難しい点はなく、これまでの技術やノウハウが流用できます。さらにNutanix CSI Operatorを通したPVの動的プロビジョニングも可能ですのでVMのワークロードからストレージまでNutanixのHCIで統合して提供することが可能です。

今後、OpenShift v4.8以降の対応や、AHVのIPIサポートで自動インストールができるようになるとさらにオンプレ上のOpenShift導入先としてAHVが候補に上がることが期待できますね!

*1:Tested Integrationsは、サポートしている環境全てについて記載があるわけではないので今後どのタイミングで追記されるかは不明…

*2:Assited InstallerおよびSNOについてはまた別記事で詳しく紹介

*3:技術的にSNOのインストールを実現するBootstrap-Inplaceに対応しているのがv4.8以降のため

*4:Assisted Installerのウィザード内のチェックがあり足りないとインストールが開始できない

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。