OKD 4 : Compute ノードを追加する2022/04/19 |
Red Hat OpenShift 4 のアップストリーム、OKD 4 のインストールです。
当例では以下のような環境を例に OKD 4 クラスターを構成しています。
構成済みの OKD 4 クラスターに下図の Compute ノード (10.0.0.60) を追加します。
--------------+----------------+-----------------+-------------- |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 |10.0.0.60 +-------------+-------------+ +--------------+-------------+ | [master-2.okd4.srv.world] | | [node-0.okd4.srv.world] | | Control Plane#3 | | Compute Node#1 | | | | | | | | | +---------------------------+ +----------------------------+ |
構築にあたっては、下記が最小のシステム要件となっています。(公式ドキュメントより)* 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 ノードを起動しておきます。
|
|
[1] | Manager ノードで、Compute ノード用の設定を追加しておきます。 |
[root@mgr ~]#
vi /etc/hosts # Compute ノードのホスト名 (任意) と IP アドレスを追記 10.0.0.24 bootstrap 10.0.0.25 api api-int mgr 10.0.0.40 master-0 etcd-0 _etcd-server-ssl._tcp 10.0.0.41 master-1 etcd-1 _etcd-server-ssl._tcp 10.0.0.42 master-1 etcd-2 _etcd-server-ssl._tcp 10.0.0.60 node-0
[root@mgr ~]#
vi /etc/nginx/nginx.conf # Compute ノードを追加 stream { upstream k8s-api { server 10.0.0.24:6443; server 10.0.0.40:6443; server 10.0.0.41:6443; server 10.0.0.42:6443; } upstream machine-config { server 10.0.0.24:22623; server 10.0.0.40:22623; server 10.0.0.41:22623; server 10.0.0.42:22623; } upstream ingress-http { server 10.0.0.40:80; server 10.0.0.41:80; server 10.0.0.42:80; server 10.0.0.60:80; } upstream ingress-https { server 10.0.0.40:443; server 10.0.0.41:443; server 10.0.0.42:443; server 10.0.0.60:443; } upstream ingress-health { server 10.0.0.40:1936; server 10.0.0.41:1936; server 10.0.0.42:1936; server 10.0.0.60:1936; } server { listen 6443; proxy_pass k8s-api; } server { listen 22623; proxy_pass machine-config; } server { listen 80; proxy_pass ingress-http; } server { listen 443; proxy_pass ingress-https; } server { listen 1936; proxy_pass ingress-health; } }[root@mgr ~]# systemctl restart dnsmasq nginx |
[2] | Control Plane ノード インストール時と同様に、Fedora CoreOS をインストールする Compute ノードの DVD ドライブに ISO ファイルをセットして電源をオンします。 すると、Fedora CoreOS が DVD から起動します。そのまま Enter キーを押下すると、システムが起動して、自動ログインします。 |
[3] | 起動後、他ノードと同様に設定します。異なる箇所は IP アドレスと ignition ファイル名のみです。 |
[core@localhost ~]# nmcli device DEVICE TYPE STATE CONNECTION ens160 ethernet connected Wired connection 1 lo loopback unmanaged --
[core@localhost ~]#
[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.60/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
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 ..... ..... # Compute ノードは [worker.ign] [core@localhost ~]# sudo coreos-installer install /dev/nvme0n1 --ignition-url=http://10.0.0.25:8080/worker.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] | 一定時間経過後、Manager ノードに移動し、[Pending] 状態の Compute ノードの CSR (Certificate Signing Requests) を承認すると、クラスターに追加されます。 |
[root@mgr ~]# oc get csr NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION csr-2ds8c 68m kubernetes.io/kubelet-serving system:node:master-2.okd4.srv.world <none> Approved,Issued csr-7pwq5 80m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued csr-8k4g7 80m kubernetes.io/kubelet-serving system:node:master-0.okd4.srv.world <none> Approved,Issued csr-gjkns 72m kubernetes.io/kubelet-serving system:node:master-1.okd4.srv.world <none> Approved,Issued csr-hx5dq 73m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued csr-mgltg 73m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued csr-nhnw4 68m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued csr-q9pnq 2m35s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending csr-r6ltf 2m51s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending csr-rn4dn 80m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued csr-ww2gb 68m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued system:openshift:openshift-authenticator-4zthw 77m kubernetes.io/kube-apiserver-client system:serviceaccount:openshift-authentication-operator:authentication-operator <none> Approved,Issued system:openshift:openshift-monitoring-fs7ws 76m kubernetes.io/kube-apiserver-client system:serviceaccount:openshift-monitoring:cluster-monitoring-operator <none> Approved,Issued
[root@mgr ~]#
oc adm certificate approve csr-q9pnq certificatesigningrequest.certificates.k8s.io/csr-q9pnq approved [root@mgr ~]# oc adm certificate approve csr-r6ltf certificatesigningrequest.certificates.k8s.io/csr-r6ltf approved # Compute ノードが追加される [root@mgr ~]# oc get nodes NAME STATUS ROLES AGE VERSION master-0.okd4.srv.world Ready master,worker 82m v1.23.3+759c22b master-1.okd4.srv.world Ready master,worker 74m v1.23.3+759c22b master-2.okd4.srv.world Ready master,worker 70m v1.23.3+759c22b node-0.okd4.srv.world NotReady worker 15s v1.23.3+759c22b # 一定時間経過後 STATUS = Ready となる [root@mgr ~]# oc get nodes NAME STATUS ROLES AGE VERSION master-0.okd4.srv.world Ready master,worker 83m v1.23.3+759c22b master-1.okd4.srv.world Ready master,worker 75m v1.23.3+759c22b master-2.okd4.srv.world Ready master,worker 71m v1.23.3+759c22b node-0.okd4.srv.world Ready worker 86s v1.23.3+759c22b |
[5] | Compute ノード追加後は、Bootstrap ノードはシャットダウンして OK です。 また、他ノードと同様、Compute ノードへは [core] ユーザーで SSH 鍵アクセス可能です。 |
[root@mgr ~]# ssh core@node-0 hostname node-0.okd4.srv.world |
Sponsored Link |