OpenShift4 on OpenStack:OpenStackをインフラとして使うときに気になる点

クラウドインフラ全般を担当しているソリューションアーキテクトの伊藤です。この記事はOpenShift Advent Calendar 2019 - Qiita 11日目のエントリになります。

アドベントカレンダーを埋めるのが最後になってしまったようで空いている枠を取ったら2日連続になりました。しくしく(;O;)。

■はじめに

オンプレミス環境においてOpenShift4をデプロイしようとしたときに、どんなインフラにデプロイをしますか?

2019年12月初旬現在リリースされている最新のOpenShift4.2では、

・OpenStack

・Baremetal

・vSphere

この3つのインフラ環境を選択することができます。

 

本日はOpenStackをインフラとして選択して、IPIでOpenShiftを構築してみたいと思います。

既に多くの記事でOpenShift4のインストールについて触れられているので、この記事ではインフラ環境としてOpenStackを選択した際の違いや注意点について記載することとします。

 

f:id:takitou:20191211175502p:plain

 

■OpenShift4が必要なインフラリソース

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

f:id:takitou:20191211175548p:plain

Ref: https://docs.openshift.com/container-platform/4.2/installing/installing_openstack/installing-openstack-installer-custom.html#installation-osp-default-deployment_installing-openstack-installer-custom

 

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

f:id:takitou:20191211175622p:plain

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のオフィシャルドキュメント

https://docs.openshift.com/container-platform/4.2/installing/installing_openstack/installing-openstack-installer-custom.html

 

・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を使ったインストールであれば若干のインフラの違いのみを意識すれば後のやり方は変わりません!

 

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