環境
almalinux: AlmaLinux 9.4 (Seafoam Ocelot)
kubeadm: v1.29.6
kubectl: v1.29.6
kubelet: v1.29.6
参考
最初に参考を書くのも変な感じだが、下記のurlを参考にこの記事を作成した。
最初に
本稿KubernetesをalmalinuxでHA構成で構築するは4部構成の予定だが、これらの記事に出てくる全てのnodeはこの記事の内容を設定している。
selinuxの無効化
selinuxは検証環境には無用の長物。
ので、無効化する。
$ sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
$ sudo reboot
swapの無効化
kubernetesはswapを無効化しないと動作しない。
理由は知らない。
$ sudo swapoff -a
$ sudo vim /etc/fstab
# comment outする
#/dev/mapper/almalinux-swap none swap defaults 0 0
firewalldの設定
kubernetesが使うportを解放する。
securityを気にしないなら、disableにしても良い。
$ sudo firewall-cmd --add-port 6443/tcp --permanent
$ sudo firewall-cmd --add-port 2379-2380/tcp --permanent
$ sudo firewall-cmd --add-port 10250-10252/tcp --permanent
$ sudo firewall-cmd --reload
ipv4 forwardingの有効化
ipv4 forwardingを行うためにmoduleをloadして有効化する。
$ sudo modprobe overlay
$ sudo modprobe br_netfilter
#moduleの確認
$ lsmod | grep br_netfilter
$ lsmod | grep overlay
$ sudo vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
$ sudo sysctl --system
#kernel parameterの確認
$ sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward
containerdのinstall
dockerはkubernetesから降ろされたため、containerdをinstallする。
$ sudo dnf install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install containerd.io -y
$ sudo systemctl restart containerd
containerdのconfig
containerdのcgroup driverにsystemdを設定する。
$ sudo sh -c "containerd config default > /etc/containerd/config.toml"
$ sudo vim /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
...
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
$ sudo systemctl restart containerd
kubectl,kubeadm,kubeletのinstall
kubernetesのcommand群をinstallする。
repoのurlが参考と異なっているため注意。
$ sudo vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
$ sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
kubeletの起動
$ sudo systemctl enable --now kubelet
おそらく、startしてもloadedのままだと思う。
kubeadmでkubernetesを構築したらkubeletもstartする。
次回はcontrol node
を構築する。