はじめに
OpenShiftをUPI(User Provisioned Infrastructure)インストールする時、DNSやDHCPなどなどOCPの導入や実行に必要なサービスを用意する必要があります。ただ、こういったサービスを手動でいちいち構築するのは面倒です。そこで、OCP4 Helper NodeというAnsibleのPlaybookを利用すると、作業時間を非常に短縮できます。
OCP4 Helper Node
https://github.com/redhat-cop/ocp4-helpernode
このPlaybookは非常に優秀で、OCPをUPI導入するときの手間をかなり軽減してくれます。
一方、ドキュメントには最低限のことしか書いていない、という気がします。せっかく便利な機能があるのに、これまで気づかなかった!構築後に気づいた!みたいなことがありました(ちゃんとPlaybookを読んでから使え!という話もあります)。
そこで、備忘録も兼ねてこの記事に便利だった機能を書いておこうと思います。
NTP
OpenShiftクラスター内のノードはNTP(chronyd)で時刻同期する必要があります。クラスターの導入後にMachineConfigを作って設定してもよいのですが、実はocp4-helpernodeでMachineConfigを作ってくれます。こちらの例に載っていました。
chronyconfig:
enabled: true
content:
- server: 0.centos.pool.ntp.org
options: iburst
- server: 1.centos.pool.ntp.org
options: iburst
レジストリーのミラー
OpenShiftクラスターがインターネットに直接アクセスできない環境の場合、OpenShift導入用のレジストリーをミラーしておいて、これを使って導入する必要があります。いままで、わたしは手動でセコセコ作っていたのですが、ocp4-helpernodeで自動的にミラーを作成可能だということに気づきました。
ちなみに、こちらはx86だけでなく、ppc64leアーキテクチャにも対応しています。
setup_registry:
deploy: true
autosync_registry: true
Helper Nodeの冗長化
これはドキュメントに書いてないわけじゃないのですが、わたしはドキュメントを見逃していました(汗)。
以下のドキュメントにに冗長化する方法が記載されています。
How to configure inventory for high availability environment
https://github.com/redhat-cop/ocp4-helpernode/blob/main/docs/inventory-ha-doc.md
中身はkeepalivedで各サービスを冗長化しているだけなのですが、メンテナンスなどで停止できない環境の場合に重宝します。
構成完了後に一通りテストしてみましたが、きちんと冗長化出来るようです。