OpenShift構築奮闘記 #0

OpenShift の構築に試行錯誤した記録を残すため「OpenShift構築奮闘記」というタイトルで連載を始めます。 手始めに OpenShift を構築することにした経緯と、インストールする構成を残しておきます。 どのような課題が発生している/していたかは #1 以降で記載します。

なお、執筆時点で構築完了していないため連載回数は未定です。

事の始まり

弊社(弊部署)には毎月hh時間は技術向上のために遊んでよい(業務外のことをしてよい)、という取り組みがあります。 その一環で、自分は Kubernetes や Ansible といった技術の検証(勉強)を進めていました。

検証のためのVMは用意してもらっていましたが、1台しかないため色々試したいことが試せず悶々とした日々を過ごしていました。

e.g. 1サーバに GitLab(omnibus) と Kubernetesクラスタ を同居させて、 GitLab から Kubernetes に連携しようとしても「同じサーバ上にあるからダメー」と怒られたり…。

そんな折の今年1月末に突如、「保守期限切れになったサーバ(正確にはワークステーションらしい)を廃棄する前に自由に使っていいよ」とボスから声を掛けていただきました。

↓その日の定時後の様子

5台も使えることになったのですが、前職を含めても物理サーバを直接触ったこともないド初心者です。 とりあえず1台分だけ VMware ESXi を導入してVMの作っては壊しをできるようにして、その VMware 上に当初から考えていた Kubernetes クラスタを構築を目指しました。

社内ネットワークということもありプロキシやら認証やらで手こずりながらも、なんとか kubeadm を使った Kubernetes クラスタを構築することができました。(この内容もいずれ記事に残したいです)

そんなこんなして遊んでいたら、Red HatのウェビナーやSoftware Design 3月号で紹介されていた OpenShift の詳細を知る機会があり、興味が湧いてきました。

OpenShift、いいですよね(説明を見聞きしただけで触ったことはない)。

使うだけならARO(Azure Red Hat OpenShift)が楽だと思いますが、せっかくなので VMware 上に OpenShift を構築することを次の目標にしました。 構築にあたり以下の記事を参考にさせていただいてます、ありがとうございます。

qiita.com

rheb.hatenablog.com

上記の記事を流し見して「なるほどよく分からん、まぁなんとかなるでしょ」と、これも勉強だと気軽に考えて手を動かし始めました。

が、しかし!

当然の如く躓いてしまっています。四苦八苦中です。。

「なるほどよく分からん」←本当に分からない 「まぁなんとかなるでしょ」←なってない

そんな OpenShift を構築するまでの奮闘を記します。

本当に構築することができるのでしょうか。

構成

OpenShift をインストールする環境の構成は以下のような感じです。 OpenShift や RHCOS は執筆時点の最新バージョンを使用しています。(最新のものを入れがち) f:id:nnstt1:20200303023443p:plain

システム バージョン 導入先
VMware ESXi 6.7.0 物理サーバ
OpenShift 4.3.1 VMware ESXi
RHCOS 4.3.0 master / worker / bootstrap
CentOS 7.7 bastion

物理的な違い以外は参考記事と同じ構成にしました。

踏み台サーバ

踏み台サーバの中身も同じように構築したのですが、一点だけ異なる箇所があります。 それは「cntlm」というプロキシを導入している点です。 なぜかというと、社内ネットワークからインターネットに接続する際に社内プロキシサーバでNTLM認証あり、その認証を通す仕組みが必要だからです。 そのために今回は cntlm というソフトウェアを利用しました。

設定ファイル /etc/cntlm.conf は以下のように設定しています。

Username   [ユーザ名]
Domain     [ドメイン名]
Password   [パスワード]
Proxy      [社内プロキシサーバIPアドレス:ポート]
NoProxy    localhost, 127.0.0.*, 10.*, 192.168.*, 172.10.0.*, 172.30.*
Listen     3128
Gateway    yes
Allow      127.0.0.1
Allow      172.10.0.0/24

検証ネットワークとサービスネットワークの場合は社内プロキシに行かないようにNoProxyに設定しています。 (もしかしたら現在直面している問題はここが原因かも?)

MACアドレス

VMware に構築した各ノードには検証ネットワークの固定IPアドレスを付与します。VMを作っては壊し〜を繰り返すことが目に見えていたため、今回はVM構築時にMACアドレスを手動で設定するようにしました。

VMware ではVMMACアドレスを手動で設定する場合は 00:50:56:00:00:0000:50:56:3F:FF:FFの範囲でつける必要があるそうです。

docs.vmware.com

bootstrap/master/workerノードを 00:50:56:00:00:00 からの連番、踏み台サーバだけを最大値の 00:50:56:3F:FF:FF としました。

今後このネットワークにどれだけノードを増やすか分からないですが、MACアドレス4バイト目の上限が中途半端に 3F なので、事故らないために先に最大値を使いました。踏み台サーバより大きいMACアドレスをつけないようにすれば事故らないはず…。

と、この内容を書いていて思いました。

  • MACの上限を気にするほど絶対VMたてない
  • そもそも範囲外のMACアドレス指定したらVMwareが警告してくれる(VM作れない)

虚しいですけど残しておきます。

あえて意識して構築した点は以上です。

今後について

まずは構成について簡単に記載しました。

今後は直面した課題と、どういう点を意識して調査したか、その結果解決したか/できなかったか、をしっかり残していきます。 同じような課題に出会う方に少しでも役立てるように。

そして、この投稿が自分のモチベの呼び水となることを期待して…。