CentOS Stream 8
Sponsored Link

OKD 4 : インストール #1
2022/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.60
+-------------+-------------+     +--------------+-------------+
| [master-0.okd4.srv.world] |     |   [node-0.okd4.srv.world]  |
|      Control Plane        |     |        Compute Node        |
|                           |     |                            |
|                           |     |                            |
+---------------------------+     +----------------------------+

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

  * 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 ノードを設定します。
[1]
[2]
[3] Manager ノードで、クラスター内で必要な DNS 設定を Dnsmasq に適用しておきます。
[root@mgr ~]#
vi /etc/dnsmasq.conf
# 80行目 : 追記
# apps.(任意のクラスター名).(ドメイン名)/IP アドレス
# [*.apps.okd4.srv.world] は全て [10.0.0.25] とする
address=/apps.okd4.srv.world/10.0.0.25

# 145行目 : ドメイン名を追記
domain=okd4.srv.world

[root@mgr ~]#
vi /etc/hosts
# [api], [api-int], [bootstrap] の名前は固定
# [master-0], [node-0] はそれぞれのノードのホスト名
# [etcd-0], [_etcd-server-ssl._tcp] は [master-0] の別名で名前は固定
# Control Plane を増やす場合 : [etcd-(n)]
# ⇒ (IP アドレス) (ホスト名) etcd-1 _etcd-server-ssl._tcp
10.0.0.24   bootstrap
10.0.0.25   api api-int
10.0.0.40   master-0 etcd-0 _etcd-server-ssl._tcp
10.0.0.60   node-0

[root@mgr ~]#
systemctl restart dnsmasq
# DNS 設定追加
# デバイス名や IP アドレス等は自身の環境に置き換え

[root@mgr ~]#
nmcli connection modify enp1s0 +ipv4.dns 10.0.0.25

[root@mgr ~]#
nmcli connection modify enp1s0 +ipv4.dns-search okd4.srv.world

[root@mgr ~]#
nmcli connection up enp1s0

[4] Manager ノードで、クラスター内で必要な設定を Nginx に適用しておきます。
[root@mgr ~]#
dnf -y install nginx-mod-stream
[root@mgr ~]#
vi /etc/nginx/nginx.conf
    server {
    	# 39行目 : 待ち受けポート変更
        listen       8080 default_server;
        listen       [::]:8080 default_server;

# 最終行に追記
stream {
    upstream k8s-api {
        server 10.0.0.24:6443;
        server 10.0.0.40:6443;
    }
    upstream machine-config {
        server 10.0.0.24:22623;
        server 10.0.0.40:22623;
    }
    upstream ingress-http {
        server 10.0.0.40:80;
        server 10.0.0.60:80;
    }
    upstream ingress-https {
        server 10.0.0.40:443;
        server 10.0.0.60:443;
    }
    upstream ingress-health {
        server 10.0.0.40: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 nginx

[5] SELinux を有効にしている場合は、ポリシーの変更が必要です。
[root@mgr ~]#
setsebool -P httpd_can_network_connect on

[root@mgr ~]#
setsebool -P httpd_graceful_shutdown on

[root@mgr ~]#
setsebool -P httpd_can_network_relay on

[root@mgr ~]#
setsebool -P nis_enabled on

[root@mgr ~]#
semanage port -a -t http_port_t -p tcp 6443

[root@mgr ~]#
semanage port -a -t http_port_t -p tcp 22623

[root@mgr ~]#
semanage port -a -t http_port_t -p tcp 1936

[6] Firewalld を有効にしている場合は、サービスポートの許可が必要です。
[root@mgr ~]#
firewall-cmd --add-service={dns,http,https}

success
[root@mgr ~]#
firewall-cmd --add-port={6443/tcp,22623/tcp,1936/tcp,8080/tcp}

success
[root@mgr ~]#
firewall-cmd --runtime-to-permanent

success
関連コンテンツ