4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ibmcloudでオンプレミスのopenshift環境を構築する。

Last updated at Posted at 2021-02-04

#はじめに

お客様のオンプレミス環境にopenshiftを導入する需要に対し、勉強のためibmcloudでベアメタルサーバーを購入し、検証環境を作成しました。
インフラ以外は極力お金をかけない方針で進めました。

備忘録も兼ねて手順を残します。
openshiftのユーザープロビジョニングに関しては既に記事がいくつか出ていますが、本記事では以下にフォーカスしました。
ご参考になれば幸いです。

  1. ibmcloudの利用
  2. openshift環境のためのインフラの準備
  3. RHEL8におけるbastion(踏み台)サーバーの構築
  4. 他、注意点など

#目次
1.大体の流れ
2.構成
3.必要なリソースを入手する
4.ハイパーバイザーを導入しネットワークを構築する
5.踏み台サーバーを構築する
6.踏み台サーバーから各ノードをイグニッションする
7.参考文献

#大体の流れ

ibmcloudは「RedHat OpenShift on IBM Cloud Container Platform」というフルマネージドなopenshiftプラットホームを提供していますが、こちらは当然注文時点でopenshiftが出来上がってしまうため、環境構築の勉強にはなりません。
今回はオンプレミスでの構築想定なので、ベアメタルサーバー1台を購入しその中に導入していく一番面倒な(その分安い)方法を取っていきます。

流れはざっくり以下のようになります。

①必要なリソースを入手する。
②ハイパーバイザー(ESXi)を導入しネットワークを構築する。
③openshift環境に接続するためのbastion(踏み台)サーバーを構築する。
④bastionサーバーからopenshiftのOSであるCoreOSをインストール(イグニッション)する。

以降、既に消去した環境なので、パブリックipやパスワードなど特にマスキングせずに記載しています。

#構成
・ネットワーク図
image.png
・スペック
image.png

・ESXi hostコンソールでのネットワーク設定
image.png
image.png

#必要なリソースを入手する

###リソースを注文可能にする
ibmcloudにアカウント登録し、クレジットカードを登録して従量課金アカウントへアップグレードします。

ドキュメント:
 IBM Cloud アカウントのセットアップ
 

###ベアメタルサーバーの注文

こちらのページから注文できます。
 https://cloud.ibm.com/gen1/infrastructure/provision/bm

本記事では以下のように注文しました。

ロケーション 北米南 DAL10 - ダラス
プロファイル 構成可能サーバー
デュアル・プロセッサー
Intel Xeon 8260(Cascade Lake)
RAM 128 GB
イメージ OSなし
ストレージ・ディスク※1 RAID 5
ディスク 3個
ホット・スペア 0
SATA SSD
1.7TB
ネットワーク・インターフェース※2 パブリック及びプライベート
1Gbps
500GB

※1 ディスク容量をかなり大きく確保し、かつ冗長化しています。本記事での構成だと冗長化は必須では無く実効容量1TBほどあれば構築可能です。
※2 パブリックインターフェースも注文していますが本記事ではプライベートネットワークアクセスしか利用していません

作成ボタンをクリックして注文すると、空のデバイスリストに戻されます。
特に何もメッセージが出ないので注文に失敗したのかと不安になりますが、
ベアメタルサーバーの注文は特に反映に時間がかかるようで、データセンターでは構築作業が始まっています。

この時点できちんと注文できているかはオーダー履歴でのみ分かります。
https://cloud.ibm.com/billing/orders

1、2時間ほど待つと、デバイスリストに以下のように購入したベアメタルサーバーが追加されます。
image.png

###IPアドレスの注文
bastionサーバー購入時に付与されるパブリックIP、プライベートIPは筐体管理用のIPなので、ESXi上に構築するvmには割り当てられません。
bastionサーバーとopenshiftのノード間を行き来する内部ネットワークのためのPrivate IP、及びインターネットからopenshiftコンソールにアクセスするためのPublic IPを注文します。

以下ページから「Create Subnet」をクリックして注文します。
https://cloud.ibm.com/networking/subnets

Private IP
Scope NA South DAL10 - Dallas 10
Network Private
Size /28
Routing Portable
Endpoint ベアメタル注文時に自動作成されたvlanを選択
Public IP
Scope NA South DAL10 - Dallas 10
Network Public
Size /30
Routing Portable
Endpoint ベアメタル注文時に自動作成されたvlanを選択

VMware ESXiのダウンロード

以下の評価版(60日)を利用します。
アカウント登録してダウンロードします。
https://my.vmware.com/jp/web/vmware/evalcenter?p=vsphere-eval-7

RHELのダウンロード

bastionサーバーに導入するOSのisoイメージを入手します。
以下の開発版を利用します。アカウント登録し、ダウンロードします。
https://developers.redhat.com/products/rhel/download

openshiftのライセンス入手

私は別口で検証用のライセンスがあったのでそちらを利用しましたが、以下から評価版のライセンスを入手できるようです。
アカウント登録して入手します。
https://access.redhat.com/downloads

CoreOS、pull secret、openshift-install、openshift installerの入手

openshiftのライセンスを入手し、RedHatアカウントと結びついたら以下からダウンロードできるようになります。
https://cloud.redhat.com/openshift/install/metal/user-provisioned

CoreOSはISOとrawの両方をダウンロードします。
image.png

#ハイパーバイザーを導入しネットワークを構築する

###SSL VPNに接続する
ベアメタルサーバーへのアクセスには、VPNを利用します。

まずは、ibmcloudコンソール右上から「管理」→「アクセス(IAM)」→「ユーザー」→「クラシック・インフラストラクチャー」→「自身のユーザー」→「クラシック・インフラストラクチャー」→「VPNサブネット」と進んでいき、「SSL VPNアクセスを有効にする」にチェックを入れます。
image.png

次に、「ユーザーの詳細」タブに戻り、「VPN パスワード」の欄からユーザー名とパスワードを確認します。

以下urlにInternet Explorerでアクセスして、確認したユーザー名とパスワードでログインし、接続します。
(Internet Explorer以外は対応していません・・・。VPNクライアントをダウンロードする方法もあります。)
https://vpn.tok02.softlayer.com

###KVNコンソールに接続
ベアメタルサーバーにESXiを導入するため、筐体管理用のコンソールに接続します。
デバイス画面から購入したベアメタルサーバーをクリックし、「リモート管理」からユーザーとパスワードを確認します。
image.png

その後、コンソール右上の「アクション」から「KVNコンソール」を選択します。
SSL VPNに接続できている状態であれば、KVMコンソールのログイン画面に進めます。確認したユーザーとパスワードを入力し、ログインします。

(私の環境では何故かログイン画面に飛ばずデバイスリストにリダイレクトされてしまう事がたびたびありました。その場合何度かやり直すとアクセスできました。)

###ESXi isoファイルのマウント
ダウンロードしたESXiのisoファイルを、ベアメタルサーバーにマウントします。
「リモート・コンソール」から下図の赤く囲った部分をクリックし、「リモート・コンソールの起動」を選択します。

image.png

リモートコンソールが立ち上がるので、画面上部の「メディア」をクリックし、「ローカル・メディア用Javaクライアントを起動する」を選択します。
Javaクライアントのダウンロードが始まるので、それを起動すると下図のような小さいウィンドウが立ち上がります。
続けて「Virtual Media」→「Select Devices to Mount...」を選択します。

image.png

その後「Add Image...」を選択し、ダウンロードしたESXiのisoファイルを選択します。
「Mapped」と「Read Only」にチェックを入れた状態で、「Mount Selected」を選択します。

image.png

下図のように表示されたらOKです。

image.png

###ESXiのインストール
「メディア」の画面を閉じて、「電源」→「サーバーの電源オン」をクリックして暫く待つと、自動でESXiのインストーラーが立ち上がります。

image.png
image.png

ESXiのインストール詳細は割愛します。以下の記事等参考にされると良いと思います。
 VMware vSphere Hypervisor 7.0 (ESXi) をインストールしてみてみた @shirok様
 
###ESXi Webコンソールに接続
インストールが終了して再起動したら、「F2」キー→ログイン→「Configure Management Network」→「IPv4 Configuration」と進み、「Set static IPv4 address and network configuration」を選択し、ESXiのWebコンソールに接続するためのIPアドレスをセットします。
ここで入力するIPはベアメタル購入時に付与されたprivate IPです。IPアドレスの実値は読み替えてください。

image.png
image.png

エスケープで抜けると変更を反映するためにManagement Networkのリスタートを促されるので、実行します。

その後、ブラウザのurlバーに以下を入力すると、Webコンソールにアクセスできます。

https://<筐体管理用のprivate IP>/ui/

###Networkの構築
ESXi Webコンソールにログインしたら、「ネットワーク」タブをクリックし、2.構成の通りにvSwitchとPort Groupを作成します。

#踏み台サーバーを構築する
###仮想マシンの作成
ESXi Webコンソールで「仮想マシン」タブをクリックし、「仮想マシンの作成/登録」をクリック。
「新規仮想マシンの作成」を選び「次へ」
image.png

以下のように入力、選択
image.png

そのまま次へ
image.png

以下のように入力、選択します。CD/DVDドライブは入手したRHEL8のisoファイルをアップロードして選択します。
※アップロードに5時間くらいかかりました
image.png
image.png

###RHEL8のインストール
作成した仮想マシンをパワーオンしてコンソールを開くと、RHEL8のインストーラーが起動します。
image.png

インストールの詳細は割愛します。以下の記事等参考にされると良いと思います。
 https://www.rem-system.com/rhel8-install/

###ipアドレスのセット
RHEL8のインストールを終え、ログインしたら、ipアドレスをセットします。(インストール時にGUIでセットしても良いです。)
筐体管理用のipでは無く、追加で購入したipをセットします。ipアドレスの実値は読み替えてください。

#Private
nmcli connection modify ens192 connection.autoconnect yes
nmcli connection modify ens192 ipv4.method manual
nmcli connection modify ens192 ipv4.address 10.171.33.34/28
nmcli connection modify ens192 ipv4.dns 127.0.0.1

#Public
nmcli connection modify ens224 connection.autoconnect yes
nmcli connection modify ens224 ipv4.method manual
nmcli connection modify ens224 ipv4.address 169.48.182.142/30
nmcli connection modify ens224 ipv4.gateway 169.48.182.141

#反映、起動
nmcli connection reload
nmcli connection down ens192 && nmcli con up ens192
nmcli connection down ens224 && nmcli con up ens224

最終的に以下のようになればokです。(途中メモ取り忘れたので曖昧、ごめんなさい)

[root@bastion ~]# nmcli device
DEVICE  TYPE      STATE     CONNECTION 
ens224  ethernet  接続済み  ens224     
ens192  ethernet  接続済み  ens192     
lo      loopback  管理無し  --

[root@bastion ~]# nmcli
ens224: 接続済み から ens224
        "VMware VMXNET3"
        ethernet (vmxnet3), 00:0C:29:CB:93:07, hw, mtu 1500
        ip4 デフォルト
        inet4 169.48.182.142/30
        route4 0.0.0.0/0
        route4 169.48.182.140/30

ens192: 接続済み から ens192
        "VMware VMXNET3"
        ethernet (vmxnet3), 00:0C:29:CB:93:FD, hw, mtu 1500
        inet4 10.171.33.34/28
        route4 10.0.0.0/8
        route4 10.171.33.32/28

[root@bastion ~]# ip route
default via 169.48.182.141 dev ens224 proto static metric 102 
10.0.0.0/8 via 10.171.33.33 dev ens192 proto static metric 100 
10.171.33.32/28 dev ens192 proto kernel scope link src 10.171.33.34 metric 100 
169.48.182.140/30 dev ens224 proto kernel scope link src 169.48.182.142 metric 102

[root@bastion ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 127.0.0.1

この時点でネットワーク設定が上手くいっていればインターネットに接続できているはずです。
適当なサイトにpingして確認します。(以下はyahoo.co.jp)

[root@bastion ~]# ping 183.79.250.123
PING 183.79.250.123 (183.79.250.123) 56(84) bytes of data.
64 bytes from 183.79.250.123: icmp_seq=1 ttl=51 time=144 ms
64 bytes from 183.79.250.123: icmp_seq=2 ttl=51 time=144 ms
64 bytes from 183.79.250.123: icmp_seq=3 ttl=51 time=144 ms
^C
--- 183.79.250.123 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 143.568/143.691/143.818/0.102 ms

###subscription-managerの登録
RedHatのDeveloperのアカウント情報でサブスクリプション登録します。

subscription-manager register --username=xxxxxx --password=xxxxxx
subscription-manager attach --auto

とりあえずパッケージ更新

dnf update

###カーネルパラメタの変更

#ipv6の無効化
 echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/99-sysctl.conf
#LBのためのパケット転送許可
 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/99-sysctl.conf
#反映
 sysctl -p /etc/sysctl.d/99-sysctl.conf

###SE Linux

#httpdがユーザディレクトリにアクセスできるようにする
setsebool -P httpd_read_user_content 1

#HAproxyがバックエンドポートに接続することを許可する
setsebool -P haproxy_connect_any 1

###Firewallの設定

# trusted zoneを定義
nmcli c modify ens192 connection.zone trusted

# external zoneを定義
nmcli c modify ens224 connection.zone external

# trusted zoneのマスカレードを許可
firewall-cmd --zone=trusted --add-masquerade --permanent

# externalの通信を許可
firewall-cmd --zone="external" --set-target=ACCEPT --permanent

# サービスの許可
firewall-cmd --add-service=http --zone="trusted" --permanent
firewall-cmd --add-service=https --zone="trusted" --permanent
firewall-cmd --add-service=dhcp --zone="trusted" --permanent
firewall-cmd --add-service=dns --zone="trusted" --permanent

#リロード
firewall-cmd --reload
#確認
firewall-cmd --get-active-zone
firewall-cmd --list-all-zones

###DNS,DHCPの構築
openshiftのノードに対して名前解決やipアドレス付与を行うためのDNS、DHCPとしてdnsmasqをインストールします。

#dnsmasqのインストール
dnf install -y dnsmasq

confファイルに以下を追記します。ipアドレスは読み替えてください。
macアドレスは固定で入力する必要があり、ESXiが付与しそうな値を適当に定義しています。

# vi /etc/dnsmasq.conf

port=53
domain-needed
bogus-priv
resolv-file=/etc/resolv.dnsmasq
no-poll
address=/apps.test.example.local/10.171.33.34
no-dhcp-interface=ens224
expand-hosts
domain=test.example.local
dhcp-range=10.171.33.35,10.171.33.46,255.255.255.240,12h
dhcp-host=00:50:56:00:00:01,bootstrap,10.171.33.35
dhcp-host=00:50:56:00:00:02,master-0,10.171.33.36
dhcp-host=00:50:56:00:00:03,master-1,10.171.33.37
dhcp-host=00:50:56:00:00:04,master-2,10.171.33.38
dhcp-host=00:50:56:00:00:05,worker-0,10.171.33.39
dhcp-host=00:50:56:00:00:06,worker-1,10.171.33.40
dhcp-option=option:dns-server,10.171.33.34
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
srv-host=_etcd-server-ssl._tcp.test.example.local,etcd-0.test.example.local,2380,0,10
srv-host=_etcd-server-ssl._tcp.test.example.local,etcd-1.test.example.local,2380,0,10
srv-host=_etcd-server-ssl._tcp.test.example.local,etcd-2.test.example.local,2380,0,10
log-dhcp
log-facility=/var/log/dnsmasq.log

名前解決のためのhostsを設定します。ipアドレスは読み替えてください。
openshiftの要件としてbastionサーバーの外側をapi、内側をapi-intと定義します。

#vi /etc/hosts

169.48.182.142 api
10.171.33.34    api-int
10.171.33.35    bootstrap
10.171.33.36    master-0
10.171.33.37    master-1
10.171.33.38    master-2
10.171.33.39    worker-0
10.171.33.40    worker-1

サービスの再起動と設定反映

systemctl enable dnsmasq.service
systemctl start dnsmasq.service
systemctl status dnsmasq.service

ここで、私の環境ではdnsmasqが何故か起動しませんでした。
 → "cannot open log /var/log/dnsmasq.log: Permission denied"と権限不足で怒られる。
 → しかしディレクトリは-rw-rw---- dnsmasq dnsmasq /var/log/dnsmasq.logと正しい権限になっている。

selinuxを停止すると起動に成功したため、auditで原因を調べて見ると「dac_override」プラグインが不正な権限のプロセスを弾いている模様。根本原因不明・・・分かる人いたら教えてくれると助かります。
所詮検証環境なのでSElinuxを停止して逃げるか迷いましたが、"chmod 666 /var/log/dnsmasq.log"で権限を緩くすると起動できたので、それで進みました。

###HAProxyの構成
openshiftノードに対してのロードバランシングとして、HAProxyを導入します。

# インストール
dnf install -y haproxy

# 構成ファイルの編集
vi /etc/haproxy/haproxy.cfg

frontend kube-api
	bind *:6443
	option tcplog
	mode tcp
	default_backend api-6443

frontend machine-config
	bind *:22623
	option tcplog
	mode tcp
	default_backend config-22623

frontend http
	bind *:80
	option tcplog
	mode tcp
	default_backend http-80

frontend https
	bind *:443
	option tcplog
	mode tcp
	default_backend https-443

backend api-6443
	mode tcp
	balance roundrobin
	option ssl-hello-chk
	server bootstrap bootstrap.test.example.local:6443 check
	server master-0 master-0.test.example.local:6443 check
	server master-1 master-1.test.example.local:6443 check
	server master-2 master-2.test.example.local:6443 check

backend config-22623
	mode tcp
	balance roundrobin
	server bootstrap bootstrap.test.example.local:22623 check
	server master-0 master-0.test.example.local:22623 check
	server master-1 master-1.test.example.local:22623 check
	server master-2 master-2.test.example.local:22623 check

backend http-80
	mode tcp
	balance roundrobin
	server worker-0 worker-0.test.example.local:80 check
	server worker-1 worker-1.test.example.local:80 check

backend https-443
	mode tcp
	balance roundrobin
	option ssl-hello-chk
	server worker-0 worker-0.test.example.local:443 check
	server worker-1 worker-1.test.example.local:443 check

# 設定の有効化、開始
systemctl enable haproxy.service
systemctl start haproxy.service
systemctl status haproxy.service

nginxの構成

openshiftノードの構成時に必要なファイルをWebサーバーとして提供する必要があるため、nginxを導入します。

dnf install -y nginx
vi /etc/nginx/nginx.conf
→中身のlistenポートを8008に変えます

# 設定の有効化、開始
systemctl enable nginx
systemctl start nginx
systemctl status nginx

###イグニッションに向けたファイルの準備
ディレクトリを作成

mkdir -p /usr/share/nginx/html/ocp/rhcos/ignitions
mkdir -p /usr/share/nginx/html/ocp/rhcos/images/latest
mkdir -p /usr/share/nginx/html/ocp/rhcos/images/release/460

460ディレクトリに入手しておいたrhcos~raw.gzをアップロードします。
後続の処理の都合上、このままだとファイル名が長すぎるので、Webサーバーにはシンボリックリンクを作成します。(参考文献書籍より引用)

cd /usr/share/nginx/html/ocp/rhcos/images/latest
ln -s ../release/460/rhcos-metal.x86_64.raw.gz bios.raw.gz

openshiftノードにsshする用の鍵を作成します。

ssh-keygen -t rsa -b 4096 -N '' -f ~/.ssh/new_rsa

適当な場所にインストール用のディレクトリを作成し、インストール用のConfigファイルを作成します。
本記事では/root/baremetalとします。
「pullSecret」には入手しておいたpull secretの文字列を、「sshKey」には作成したnew_rsa.pubの文字列を記載します。

mkdir -p /root/baremetal
cd /root/baremetal

vi install-config.yaml

apiVersion: v1
baseDomain: example.local
compute:
- hyperthreading: Enabled  
  name: worker
  replicas: 0 
controlPlane:
  hyperthreading: Enabled  
  name: master 
  replicas: 3 
metadata:
  name: test 
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
    hostPrefix: 23 
  networkType: openshiftSDN
  serviceNetwork: 
  - 172.30.0.0/16
platform:
  none: {} 
fips: false 
pullSecret: 'xxxxx'
sshKey: 'xxxxx'

入手しておいたopenshift-installコマンドラインツールをアップロードして解凍し、実行することでマニフェストファイルを作成します。

cd /root
tar -xvf openshift-install-linux.tar.gz
./openshift-install create manifests --dir=./baremetal

manifestsディレクトリが作成されるので、中にあるcluster-scheduler-02-config.ymlを以下のように編集

vi cluster-scheduler-02-config.yml
#trueからfalse
mastersSchedulable: false

イグニッションファイルを作成し、Webサーバーに配置します。

./openshift-install create ignition-configs --dir=./baremetal
chmod 644 ./baremetal/*.ign
cp ./baremetal/*.ign /usr/share/nginx/html/ocp/rhcos/ignitions/bootstrap.ign

なお、イグニッションファイルは作成時点から24時間で効果が切れるので、イグニッション完了までに時間切れになってしまった場合は、インストール用のディレクトリを作成するところからやり直す必要があります。

#踏み台サーバーから各ノードをイグニッションする
###仮想マシンの作成
bastionサーバーと同様に、bootstrapノード、workerノード、masterノードを全て作成します。
ただし、ネットワークアダプタはPrivate Networkのみで、dnsmasqの構成の際に決めたmacアドレスを手動で設定します。
CD/DVDドライブは入手しておいたrhcos-live.x86_64.isoをアップロードして挿入します。

image.png

###イグニッションする
最後の難関です。ここでまさかのアクション要素が登場します。
ここから各ノードに対して、CoreOSインストール時の初期パラメータを与えていきます。

bootstrap→master0,1,2→worker0,1の順に実施します。

パワーオンし、コンソールを開いたらTABキーを入力します。
そうするとCoreOSのインストールが始まる前にカーネルコマンドラインに対して初期パラメータを受け付けるようになります。

このTABキー入力受付時間が非常に短く、パワーオンして悠長にコンソールを起動していたらまず間に合いません。

コツとしては、「パワーオン」ではなく下図のペンギンの絵が描いてある再生ボタンの方を押すと通常より早くコンソールが立ち上がるので、起動するウィンドウをカチカチクリックしながらTABキーを連打します。

image.png

これでも入力が間に合うかは5分5分でした。インストールプロセスが走ってしまった場合はパワーオフしてやり直します。
やり方としては超ダサいのでスマートに入力できる方法があれば教えていただきたいです。。(切に)

入力受付状態になったら、以下を追記して、Enterを入力します。ipアドレスは読み替えてください。bootstrapサーバーにはbootstrap.ignファイルを、master-0,1,2サーバーに対してはmaster.ignファイルを、worker-0,1サーバーに対してはworker.ignファイルを指定します。

coreos.inst=yes coreos.inst.install_dev=sda coreos.inst.image_url=http://10.171.33.34:8008/ocp/rhcos/images/latest/bios.raw.gz coreos.inst.ignition_url=http://10.171.33.34:8008/ocp/rhcos/ignitions/bootstrap.ign

エラーで止まらなければ、しばらく待った後に踏み台サーバーからブートストラップサーバーにログインできます。
作成した秘密鍵を利用します。

ssh -i ~/.ssh/new_rsa core@bootstrap.test.example.local

ログイン後、journalctlコマンドでopenshiftの構築状況がわかります。

journalctl -b -f -u release-image.service -u bootkube.service

Firewallの設定やdnsmasqやhaproxyなどの設定にどこか間違いがあると、エラーが発生するのでそれを検索して原因を特定し、一つずつ潰していきます。原因を解消すると大体は自動で進行が再開しますが、進まない場合は問題のあるノードの再インストールからになります。

###状態の確認
下記コマンドで「DEBUG Bootstrap status: complete」が出力されたらbootstrapの立ち上げが完了していることを確認できます。

[root@bastion ~]# ./openshift-install wait-for bootstrap-complete --dir=/root/baremetal --log-level=debug
<略>
DEBUG Bootstrap status: complete

入手しておいたopenshift-clientの中に入っているocコマンドラインツールで、csrの承認状況を確認します。Pendingのものがあれば、手動で承認します。

export KUBECONFIG=/root/baremetal/auth/kubeconfig
#確認
oc get csr
#承認
oc adm certificate approve <csr_name>

ノードが全て起動していることを確認します。
いつまでもReadyにならないノードがあれば設定見直すかインストールやり直しになります。

[root@bastion ~]# ./oc get node
NAME       STATUS   ROLES    AGE   VERSION
master-0   Ready    master   18d   v1.19.0+7070803
master-1   Ready    master   18d   v1.19.0+7070803
master-2   Ready    master   18d   v1.19.0+7070803
worker-0   Ready    worker   18d   v1.19.0+7070803
worker-1   Ready    worker   18d   v1.19.0+7070803

次にCluster Operatorが全て起動するまで待ちます。
AVAILABLEが全てTrueになればokです。
csrを全てapprovedにしてから暫く時間がかかるみたいです。

[root@bastion ~]# ./oc get co
NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
authentication                             4.6.9     True        False         False      141m
cloud-credential                           4.6.9     True        False         False      19d
cluster-autoscaler                         4.6.9     True        False         False      18d
config-operator                            4.6.9     True        False         False      18d
<略>

###ローカル端末のDNS設定
ローカル端末のコントロールパネルから、VPNのネットワークアダプタを見つけて踏み台サーバーのipアドレスをDNSサーバーとして設定します。

image.png

###openshiftコンソールへアクセス

踏み台サーバーから、openshiftコンソールのurlと、ユーザー名とパスワードを確認します。

[root@bastion ~]# ./openshift-install --dir=/root/baremetal wait-for install-complete
DEBUG openshift Installer 4.6.9                    
DEBUG Built from commit a48ad4a15b42102d1747d2f5f3b635deffb950b5 
<略>
INFO Access the openshift web-console here: https://console-openshift-console.apps.test.example.local 
INFO Login to the console with user: "kubeadmin", and password: "CLfFH-Zn4FH-gszbS-6E9rb" 
INFO Time elapsed: 0s

適当なインターネットブラウザからアクセスしてユーザー、パスワードを入力すると・・・

image.png

やったー!

#参考文献
 公式ドキュメント
 書籍 openshift徹底活用ガイド[初版]

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?