CentOS Stream 9
Sponsored Link

Kubernetes : Manager ノードの設定2023/10/19

 

マルチノード Kubernetes クラスターを構成します。

当例では以下のように 4 台のノードを使用して設定します。

前提条件として、各ノードの [Hostname], [MAC address], [Product_uuid] は一意である必要があります。
[MAC address] と [Product_uuid] は、通常の物理マシンや一般的な方法で作成した仮想マシンであれば、通常は一意となっています。
[Product_uuid] は [dmidecode -s system-uuid] コマンドで確認できます。

+----------------------+   +----------------------+
|   [ mgr.srv.world ]  |   |   [ dlp.srv.world ]  |
|     Manager Node     |   |     Control Plane    |
+-----------+----------+   +-----------+----------+
        eth0|10.0.0.25             eth0|10.0.0.30
            |                          |
------------+--------------------------+-----------
            |                          |
        eth0|10.0.0.51             eth0|10.0.0.52
+-----------+----------+   +-----------+----------+
| [ node01.srv.world ] |   | [ node02.srv.world ] |
|     Worker Node#1    |   |     Worker Node#2    |
+----------------------+   +----------------------+

[1] まず最初に Manager ノードを設定します。
[root@mgr ~]#
dnf -y install nginx nginx-mod-stream
[root@mgr ~]#
vi /etc/nginx/nginx.conf
    server {
    	# 38行目 : 待ち受けポート変更
        listen       8080;
        listen       [::]:8080;

# 最終行に追記 : プロキシの設定
stream {
    upstream k8s-api {
        server 10.0.0.30:6443;
    }
    server {
        listen 6443;
        proxy_pass k8s-api;
    }
}

[root@mgr ~]#
systemctl enable --now nginx
[2] 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

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

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

success
[4] Manager ノードに Kubernetes クライアントをインストールしておきます。
[root@mgr ~]#
cat <<'EOF' > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=0
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

[root@mgr ~]#
dnf --enablerepo=kubernetes -y install kubectl
関連コンテンツ