techtsubame’s blog

備忘録であり、何が起きても責任は取りません

CentOS9にkubernetesインストール前の事前設定 1/2

実施する事

  • ホスト名の変更
  • パッケージ最新化
  • swap設定
  • firewalld設定
  • selinux設定

ホスト名の変更

ホスト名をわかりやすい名前に変更

変更

  • エラーがないこと
[root@localhost ~]# sudo hostnamectl set-hostname control-plane01
[root@localhost ~]# 
  • 別ターミナルでログイン
    • 指定したホスト名が表示されること
$ ssh tsubame@192.168.50.88                            
tsubame@192.168.50.88's password:
Last failed login: Sat Aug 12 18:06:18 JST 2023 from 192.168.50.194 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sat Aug 12 17:59:33 2023
[tsubame@control-plane01 ~]$ uname -n
control-plane01
[tsubame@control-plane01 ~]$

最新へアップデート

dnfコマンドにてパッケージを最新へアップデート

コマンドでアップデート

  • エラーがないこと
[tsubame@control-plane01 ~]$ sudo dnf -y update
メタデータの期限切れの最終確認: 2:13:43 前の 20230812155548秒 に実施しました。
依存関係が解決しました。
=============================================================================================
 パッケージ                          Arch     バージョン                    Repo       サイズ
=============================================================================================
インストール:
 kernel                              aarch64  5.14.0-350.el9                baseos     4.9 M

--- snip ---

完了しました!
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ cat /var/log/dnf.log | grep -i -e "ERR|CRI|FAI|WARN"
[tsubame@control-plane01 ~]$

再起動

  • ログインできること

swap無効化

kubernetesクラスターを構築する際にswapを無効化することでクラスターのパフォーマンスを向上させる

swap無効化

  • エラーが無いこと
  • swapが0Bであること
[tsubame@control-plane01 ~]$ free -h
               total        used        free      shared  buff/cache   available
Mem:           1.7Gi       249Mi       1.3Gi       8.0Mi       190Mi       1.4Gi
Swap:          2.0Gi          0B       2.0Gi
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ sudo swapoff -a
[tsubame@control-plane01 ~]$ free -h
               total        used        free      shared  buff/cache   available
Mem:           1.7Gi       246Mi       1.3Gi       8.0Mi       190Mi       1.4Gi
Swap:             0B          0B          0B
[tsubame@control-plane01 ~]$

fstabのswap設定削除

[tsubame@control-plane01 ~]$ sudo cp -p /etc/fstab{,_bk`date '+%F'`} ; ls -l /etc/fstab*
-rw-r--r--. 1 root root 742  85 22:33 /etc/fstab
-rw-r--r--. 1 root root 742  85 22:33 /etc/fstab_bk2023-08-12
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ sudo sed -i 's/.*swap.*$/#&/g' /etc/fstab
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ diff -U0 /etc/fstab{_bk`date '+%F'`,}
--- /etc/fstab_bk2023-08-12 2023-08-05 22:33:12.039988916 +0900
+++ /etc/fstab  2023-08-12 20:33:17.873885373 +0900
@@ -16 +16 @@
-/dev/mapper/cs-swap     none                    swap    defaults        0 0
+#/dev/mapper/cs-swap     none                    swap    defaults        0 0
[tsubame@control-plane01 ~]$

firewalldの設定

機能 ゾーン プロトコル ポート
API Server public 6443 TCP
NodePortServices public TCP 3000 - 32767
kubelet public TCP 10250

必要な通信許可を設定する

  • 全てsuccessが返ってくること
[tsubame@control-plane01 ~]$ sudo firewall-cmd --zone=public --add-port=6443/tcp
success
[tsubame@control-plane01 ~]$ sudo firewall-cmd --zone=public --add-port=30000-32767/tcp
success
[tsubame@control-plane01 ~]$ sudo firewall-cmd --zone=public --add-port=10250/tcp
success
[tsubame@control-plane01 ~]$

設定をファイルに保存し恒久的にする

  • 設定ファイルに設定した定義が存在すること
[tsubame@control-plane01 ~]$ sudo cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
  <forward/>
</zone>
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ sudo firewall-cmd --runtime-to-permanent
success
[tsubame@control-plane01 ~]$ sudo cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
  <port port="6443" protocol="tcp"/>
  <port port="30000-32767" protocol="tcp"/>
  <port port="10250" protocol="tcp"/>
  <forward/>
</zone>
[tsubame@control-plane01 ~]$

selinux設定

permissiveに変更する

  • permissiveであること
[tsubame@control-plane01 ~]$ sudo cp -p /etc/selinux/config{,_bk`date '+%Y'`} ; ls -l /etc/selinux/config*
-rw-r--r--. 1 root root 1187  85 22:34 /etc/selinux/confi_bk2023-08-12
-rw-r--r--. 1 root root 1187  85 22:34 /etc/selinux/config
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ sudo sed -i 's/=enforcing/=permissive/g' /etc/selinux/config
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ diff -U0 /etc/selinux/config{_bk`date '+%F'`,}
--- /etc/selinux/config_bk2023-08-12    2023-08-05 22:34:47.705945936 +0900
+++ /etc/selinux/config 2023-08-12 21:16:59.557654795 +0900
@@ -22 +22 @@
-SELINUX=enforcing
+SELINUX=permissive
[tsubame@control-plane01 ~]$
[tsubame@control-plane01 ~]$ sudo reboot
Connection to 192.168.50.88 closed by remote host.
Connection to 192.168.50.88 closed.

$ ssh tsubame@192.168.50.88            
tsubame@192.168.50.88's password:
Last login: Sat Aug 12 20:20:01 2023 from 192.168.50.194
[tsubame@control-plane01 ~]$ getenforce
Permissive
[tsubame@control-plane01 ~]$

コピペ用

OS設定

control-plane01

sudo hostnamectl set-hostname control-plane01
uname -n

worker01

sudo hostnamectl set-hostname worker01
uname -n

worker02

sudo hostnamectl set-hostname worker02
uname -n

worker03

sudo hostnamectl set-hostname worker03
uname -n

共通

sudo dnf -y update

free -h
sudo swapoff -a
free -h
sudo cp -p /etc/fstab{,_bk`date '+%F'`} ; ls -l /etc/fstab*
sudo sed -i 's/.*swap.*$/#&/g' /etc/fstab
diff -U0 /etc/fstab{_bk`date '+%F'`,}
sudo cp -p /etc/selinux/config{,_bk`date '+%F'`} ; ls -l /etc/selinux/config*
sudo sed -i 's/=enforcing/=permissive/g' /etc/selinux/config
sudo diff -U0 /etc/selinux/config{_bk`date '+%F'`,}
sudo firewall-cmd --zone=public --add-port=6443/tcp
sudo firewall-cmd --zone=public --add-port=30000-32767/tcp
sudo firewall-cmd --zone=public --add-port=10250/tcp
sudo firewall-cmd --runtime-to-permanent

再起動

sudo reboot