クラウドインフラ全般を担当しているソリューションアーキテクトの伊藤です。この記事はOpenShift Advent Calendar 2019 - Qiita 11日目のエントリになります。
アドベントカレンダーを埋めるのが最後になってしまったようで空いている枠を取ったら2日連続になりました。しくしく(;O;)。
■はじめに
オンプレミス環境においてOpenShift4をデプロイしようとしたときに、どんなインフラにデプロイをしますか?
2019年12月初旬現在リリースされている最新のOpenShift4.2では、
・OpenStack
・Baremetal
・vSphere
この3つのインフラ環境を選択することができます。
本日はOpenStackをインフラとして選択して、IPIでOpenShiftを構築してみたいと思います。
既に多くの記事でOpenShift4のインストールについて触れられているので、この記事ではインフラ環境としてOpenStackを選択した際の違いや注意点について記載することとします。

■OpenShift4が必要なインフラリソース
OpenShift4をOpenStack上稼働させるためには、OpenStackの以下のリソースが必要です。

上記表で必要になるリソースは以下のように利用されます。

Floating IPが必要数2で、実際の利用が3になっているのは、bootstrapノードが診断用に1つのFloating IPを要求するためです。
Floating IPが同時に必要となる最大数は2つです。
■OpenStackインフラの注意点
・オブジェクトストレージ(Swift)
インストールに使うユーザアカウントはswiftoperatorロールと、temp-urlをサポートさせる必要があります。
・ネットワーク(Neutron)
クラスタ内部の冗長化のためにVRRPとマルチキャストDNSが用いられていますので、インスタンス間でマルチキャストが許可されている必要があります。
■事前に準備する2つのファイル
・clouds.yaml
(stein) [stack@director15sos ~]$ cat clouds.yaml
clouds:
shiftonosp15:
auth:
auth_url: http://10.208.80.189:5000/v3
project_name: shiftstack4
username: shiftstack_user
password: ****
user_domain_name: Default
project_domain_name: Default
project_id: 826baaabe6fe4be6bdaefb71c2053a67
・install-config.yaml
いつものinstall-config.yamlファイルです。
(stein) [stack@director15sos ~]$ cat install-config.yaml.bk
apiVersion: v1
baseDomain: openshift.run
compute:
- hyperthreading: Enabled
name: worker
platform: {}
replicas: 3
controlPlane:
hyperthreading: Enabled
name: master
platform: {}
replicas: 3
metadata:
creationTimestamp: null
name: espresso (14文字以内)
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineCIDR: 172.31.0.0/16
networkType: OpenShiftSDN
serviceNetwork:
- 172.30.0.0/16
platform:
openstack:
cloud: shiftonosp15
computeFlavor: 4v-16G
externalNetwork: public (openstack neutron networkで重複するとランダムで選択される)
lbFloatingIP: 10.208.80.163
octaviaSupport: "0"
region: "RegionOne"
trunkSupport: "0"
externalDNS: 10.208.81.1
pullSecret: '{"auths":{"cloud.openshift.com":{"auth":"=========","email":"takito@redhat.com"}}}'
sshKey: 'ssh-rsa ======='
■コマンドの投入
この後に投入するコマンドは既にIPIについての記事に記載されている通りと同様です。
./openshift-install create install-config
./openshift-install create cluster
上記の構築者が行うべき事前準備を行ったら、問題が発生しなければあとはこの2つのコマンドで、クラスタコンソールへアクセスし利用を開始することが可能になります。
■OpenShift4 on OpenStackに関するドキュメンテーション、URL
・Shift on Stackのオフィシャルドキュメント
・OpenStackのためのRHCOS QCOW2イメージ置き場
https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/latest/
・OpenShiftのインストーラとクライアントソフトウェア
ocコマンド、openshift-installコマンド
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/
・Shift on Stack UPIの説明
Github上にはExperimentalな状態ですが記載があります。
https://github.com/openshift/installer/blob/master/docs/user/openstack/install_upi.md
まとめ
OpenShift4をインストールするにあたって、IPIを使ったインストールであれば若干のインフラの違いのみを意識すれば後のやり方は変わりません!