OpenShift 4.2における3ノードベアメタルデプロイ

Red Hatの福岡オフィスでソリューションアーキテクトをしている田中司恩です。 この記事はOpenShift Advent Calendar 2019 - Qiita 7日目のエントリになります。

前回前々回と、ネットワーク制限環境下の重たい内容が続いたので、今回は軽ーい内容でお届けします。

はじめに

さて、今回も例のごとくOCP4/UPI*1な内容です。*2

今回のテーマはコレです。

[図1]

3ノードクラスター
3ノードクラスター

本題に入る前に…今回の記事を書くにあたり、下記のような伏線がありました。

  1. OCP4.2でマスターノードがスケジュール対象になった
  2. IPIでインストールしたOCP4.2クラスタで、Worker NodeをReplica=0にしてみたらクラスタが生きてた
  3. Baremetal IPIのデモ動画を観た https://youtu.be/B4JbGDpDJEs?t=1254

項目1については、以前書いた記事で解説済みです。下記を参照ください。

rheb.hatenablog.com

次に項目2。スケールダウンのテストをしている時に項目1のことを思い出し、Masterノードをスケジュール対象にして、Workerノードを0台にしたら見事にクラスタが動いてしまいました。

トドメが項目3。先日のKubecon/NAと併催されていた、OpenShift Commons Gatherings のビデオと資料が公開されました。

Recap: OpenShift Commons Gathering at Kubecon/NA San Diego [Videos + Slides] – Red Hat OpenShift Blog

上記リンク内の「OpenShift 4 Release and Road Map Update」の動画の中で、今後のOCPで実装予定のBaremetal IPIのデモがありました*3。Baremetal IPIの詳細は割愛しますが*4、その中でMasterノードが3台のみでクラスターが立ち上がっているのを確認しました。

その後にドキュメントを色々と漁っていると見つけました。英語版のリリースノートに記載があるのを。

1.2.1.4. Three-node bare metal deployments (Technology Preview)

In OpenShift Container Platform 4.2, the ability to deploy a cluster without distinct compute, or worker nodes, on bare metal clusters is a Technology Preview feature. If you do not create worker machines when you install your cluster on bare metal infrastructure that you provision, all Pods, including the router Pods, are deployed on the control plane, or master, machines instead. Note that this deployment method is not available in cloud-based clusters in OpenShift Container Platform 4.2. It is not recommended to use technology preview features in production clusters.

以前OCP4.2の記事を書いた時には無かったので履歴を調べてみると、どうも11月に入ってから追加されたようです*5。 要約するとこんな感じです。

  • OCP4.2において、Workerノード無しでベアメタルに構成する方法はテクノロジープレビュー(TP)*6
  • ベアメタル上にWorkerノード無しでインストールした場合は、全てのPodはMaster上で展開される
  • OCP4.2において、この構成方法はクラウドベースのクラスタでは使えない
  • TP扱いなので本番環境で使用することは推奨しない

ということで前置きが長くなってしまいましたが、3ノードベアメタルデプロイについて解説していきます。*7

概要

OCP4.xのインストール要件では、Master Node × 3台、Worker Node × 2台が必要で、最小5ノードでのクラスタ構成となっています。3ノードベアメタルデプロイでは、Worker Node無しでMaster Nodeのみでクラスタを構成するのが特徴です。 3ノードベアメタルデプロイにおけるインストール要件や事前準備は通常のUPIインストールと同様です。 詳細は下記記事を参照ください。

rheb.hatenablog.com

今回の構成図はこのようになります。

[図2]

検証環境ネットワーク構成図
検証環境ネットワーク構成図

非常にシンプルです。構成上、Worker Nodeが無くなっただけで他に変化はありません。

インストール方法

めちゃくちゃ簡単です。通常のUPIインストール時には、Bootstrap、Master、Workerノードを起動しますが、今回はBootstrapとMasterノードを起動するだけ、です。それ以外は通常通りUPIインストールを実行してください。 デフォルトでMasterノードはスケジュール対象になっていますので、インストールコンフィグファイルの修正も不要です。

下記が3ノードでクラスタが立ち上がった画面です。

[図3]

3ノードクラスタDashboard
3ノードクラスタDashboard

  • ノード一覧
# oc get nodes
NAME       STATUS   ROLES           AGE   VERSION
master-0   Ready    master,worker   26m   v1.14.6+6ac6aa4b0
master-1   Ready    master,worker   26m   v1.14.6+6ac6aa4b0
master-2   Ready    master,worker   26m   v1.14.6+6ac6aa4b0

以上で3ノードベアメタルデプロイのインストール完了です。

動作確認

あまりにも普通に動いているので特に確認する点も無いのですが、とりあえずOTAアップデートができるかどうか試してみました。

  • アップデートパス:v4.2.8→v4.2.9

[図4]

OTAアップデート画面
OTAアップデート画面

Update nowのアイコンが変わっているのに気付いた方はよくOCP4を触っている方です。もしくはOTAマニアです。 ポチッとUpdateを押して、しばらく待てば完了です。無事アップデートできました。 クラウド上のCluster Managerはこんな感じです。

[図5]

OTA後、Cluster Manager画面
OTA後、Cluster Manager画面

NodesはMaster 3台のみが認識されています。

まとめ

ほとんど前置きで終わってしまった感がありますが、OCP4.2のクラスタをMasterノード3台で構成する方法の解説でした。

本来の目的は、今後出てくるであろうBaremetal IPIを見越した機能かと思われます*8。 この機能の今後の動向は分かりませんが、うまく活用するとOCP4を試すのが少しは楽になるのではないでしょうか。 ドキュメント上は「ベアメタルデプロイ」となっていますが、パブリッククラウド上でもUPIの手順で構築可能かと思います(未確認)。開発/検証環境は3ノードにしてコストを下げる、といった使い方もできるかもしれません。

何れにせよ、試してみる場合はTPな点はお忘れなく…

Let's get Big Ideas!

*1:OpenShift Container Platform 4 / User Provisioned Infrastructure

*2:そろそろUPI芸人と呼ばれそう

*3:Baremetal IPIのデモは20:54辺りから、36:50辺りまで

*4:またいずれ検証して記事にしたいと思います

*5:https://github.com/openshift/openshift-docs/commit/783968b48d298ee4e8e5a6f1ea252be3acb1f372#diff-e21937773545bc689525f2a41cb1cab6

*6:こちらを参照→「テクノロジープレビュー」機能とはどんな機能ですか? - Red Hat Customer Portal https://access.redhat.com/ja/solutions/387003

*7:タイトルが「3ノードベアメタルデプロイ」となっているのはドキュメントに合わせたため。

*8:デモ動画を見る限り、一旦Master Node 3台でクラスターが起動して、その後Worker Nodeが追加される

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