CentOS Stream 8
Sponsored Link

OKD 4 : インストール #32022/04/19

 
Red Hat OpenShift 4 のアップストリーム、OKD 4 のインストールです。
当例では以下のような環境を例に OKD 4 クラスターを構成します。
--------------+----------------+-----------------+--------------
              |10.0.0.25       |                 |10.0.0.24
+-------------+-------------+  |  +--------------+-------------+
|   [mgr.okd4.srv.world]    |  |  | [bootstrap.okd4.srv.world] |
|        Manager Node       |  |  |       Bootstrap Node       |
|           DNS             |  |  |                            |
|          Nginx            |  |  |                            |
+---------------------------+  |  +----------------------------+
                               |
--------------+----------------+-----------------+--------------
              |10.0.0.40       |                 |10.0.0.41
+-------------+-------------+  |  +--------------+-------------+
| [master-0.okd4.srv.world] |  |  |  [master-1.okd4.srv.world] |
|      Control Plane#1      |  |  |      Control Plane#2       | 
|                           |  |  |                            |
|                           |  |  |                            |
+---------------------------+  |  +----------------------------+
                               |
--------------+----------------+
              |10.0.0.42
+-------------+-------------+
| [master-2.okd4.srv.world] |
|      Control Plane#3      |
|                           |
|                           |
+---------------------------+

  構築にあたっては、下記が最小のシステム要件となっています。(公式ドキュメントより)

  * Bootstrap ノード     ⇒ 4 CPU, 16 GB RAM, 100 GB Storage, Fedora CoreOS
  * Control Plane ノード ⇒ 4 CPU, 16 GB RAM, 100 GB Storage, Fedora CoreOS
  * Compute ノード       ⇒ 2 CPU,  8 GB RAM, 100 GB Storage, Fedora CoreOS

 
* Bootstrap ノードはクラスター構築時のみ必要なノードとなります。
 
Manager ノード設定済みを前提として、Bootstrap ノード、Control Plane ノードに Fedora CoreOS をインストールして設定します。
[1]
以下の公式サイトにアクセスして Fedora CoreOS のインストーラーをダウンロードしておきます。
当例と同様に進める場合、ダウンロードするのは [Bare Metal] の ISO ファイルです。
⇒ https://getfedora.org/en/coreos/download?tab=metal_virtualized&stream=stable&arch=x86_64
⇒ https://builds.coreos.fedoraproject.org/browser?stream=stable&arch=x86_64 (Older Version)
[2] Fedora CoreOS をインストールする対象マシンの DVD ドライブに ISO ファイルをセットして電源をオンします。
すると、Fedora CoreOS が DVD から起動します。そのまま Enter キーを押下すると、システムが起動して、自動ログインします。
[3] ログイン後、以下のようにネットワークを設定して、ローカルディスクに Fedora CoreOS をインストールします。
ホスト名は ignition ファイルから自動設定されるため、手動設定は不要です。
最初に、Bootstrap ノードを設定します。
# デバイス名確認

[core@localhost ~]#
nmcli device

DEVICE  TYPE      STATE      CONNECTION         
ens160  ethernet  connected  Wired connection 1 
lo      loopback  unmanaged  --                 

# IP アドレス等々を設定
# DNS は Manager ノードを指定

[core@localhost ~]#
nmcli connection add type ethernet autoconnect yes con-name ens160 ifname ens160

[core@localhost ~]#
nmcli connection modify ens160 ipv4.addresses 10.0.0.24/24 ipv4.method manual

[core@localhost ~]#
nmcli connection modify ens160 ipv4.dns 10.0.0.25

[core@localhost ~]#
nmcli connection modify ens160 ipv4.gateway 10.0.0.1

[core@localhost ~]#
nmcli connection modify ens160 ipv4.dns-search okd4.srv.world

[core@localhost ~]#
nmcli connection up ens160
# ローカルディスクのデバイス名確認

[core@localhost ~]#
sudo fdisk -l


Disk /dev/nvme0n1: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

.....
.....

# Fedora CoreOS をローカルディスクにインストール

[core@localhost ~]#
sudo coreos-installer install /dev/nvme0n1 --ignition-url=http://10.0.0.25:8080/bootstrap.ign --insecure-ignition --copy-network

Installing Fedora CoreOS 35.20220327.3.0 x86_64 (512-byte sectors)
Read disk 2.5 GiB/2.5 GiB (100%)
Writing Ignition config
Copying networking configuration from /etc/NetworkManager/system-connections/
Copying /etc/NetworkManager/system-connections/ens160.nmconnection to installed system
Install complete.

# インストール完了後は DVD を取り出して再起動し、次の作業に進む
# * 再起動後も変更処理は継続する

[core@localhost ~]#
sudo reboot

[4] Control Plane ノードを設定します。
Bootstrap ノードと同様、Fedora CoreOS インストーラーをセットして電源をオンし、同様に設定します。異なる箇所は IP アドレスと ignition ファイル名のみです。
[core@localhost ~]#
nmcli device

DEVICE  TYPE      STATE      CONNECTION         
ens160  ethernet  connected  Wired connection 1 
lo      loopback  unmanaged  --                 

[core@localhost ~]#
nmcli connection add type ethernet autoconnect yes con-name ens160 ifname ens160

[core@localhost ~]#
nmcli connection modify ens160 ipv4.addresses 10.0.0.40/24 ipv4.method manual

[core@localhost ~]#
nmcli connection modify ens160 ipv4.dns 10.0.0.25

[core@localhost ~]#
nmcli connection modify ens160 ipv4.gateway 10.0.0.1

[core@localhost ~]#
nmcli connection modify ens160 ipv4.dns-search okd4.srv.world

[core@localhost ~]#
nmcli connection up ens160
[core@localhost ~]#
sudo fdisk -l


Disk /dev/nvme0n1: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

.....
.....

# Control Plane ノードは [master.ign]

[core@localhost ~]#
sudo coreos-installer install /dev/nvme0n1 --ignition-url=http://10.0.0.25:8080/master.ign --insecure-ignition --copy-network

Installing Fedora CoreOS 35.20220327.3.0 x86_64 (512-byte sectors)
Read disk 2.5 GiB/2.5 GiB (100%)
Writing Ignition config
Copying networking configuration from /etc/NetworkManager/system-connections/
Copying /etc/NetworkManager/system-connections/ens160.nmconnection to installed system
Install complete.

# インストール完了後は DVD を取り出して再起動し、次の作業に進む
# * 再起動後も変更処理は継続する

[core@localhost ~]#
sudo reboot

[5] Manager ノードで進行状況が確認できます。
環境にもよりますが、STATUS = Ready までそれなりに時間がかかります。
[root@mgr ~]#
openshift-install --dir=okd4 wait-for bootstrap-complete

INFO Waiting up to 20m0s (until 10:28AM) for the Kubernetes API at https://api.okd4.srv.world:6443...
INFO API v1.23.3-2003+e419edff267ffa-dirty up
INFO Waiting up to 30m0s (until 10:38AM) for bootstrapping to complete...
INFO It is now safe to remove the bootstrap resources
INFO Time elapsed: 9m1s

# 最終的に上記のように表示されれば クラスター Ready となる

# 認証情報を読み込む

[root@mgr ~]#
export KUBECONFIG=okd4/auth/kubeconfig

[root@mgr ~]#
echo 'export KUBECONFIG=$HOME/okd4/auth/kubeconfig' >> ~/.bash_profile
# STATUS = Ready であれば OK

[root@mgr ~]#
oc get nodes

NAME                      STATUS   ROLES           AGE     VERSION
master-0.okd4.srv.world   Ready    master,worker   17m     v1.23.3+759c22b
master-1.okd4.srv.world   Ready    master,worker   10m     v1.23.3+759c22b
master-2.okd4.srv.world   Ready    master,worker   5m50s   v1.23.3+759c22b
[6] クラスター構築完了後は、Bootstrap ノードはシャットダウンして OK です。
なお、Manager ノードから各ノードへは、ignition ファイルで設定した通り、[core] ユーザーで SSH 鍵アクセス可能です。
[root@mgr ~]#
ssh core@master-0 hostname

master-0.okd4.srv.world

[root@mgr ~]#
ssh core@master-1 hostname

master-1.okd4.srv.world

[root@mgr ~]#
ssh core@master-2 hostname

master-2.okd4.srv.world

[root@mgr ~]#
ssh core@bootstrap

[core@bootstrap ~]$
sudo shutdown -h now

関連コンテンツ