Debian 12 bookworm
Sponsored Link

Kubernetes : Kubeadm インストール2023/07/28

 

Kubeadm をインストールして、マルチノード Kubernetes クラスターを構成します。

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

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

-----------+---------------------------+--------------------------+------------
           |                           |                          |
       eth0|10.0.0.25              eth0|10.0.0.71             eth0|10.0.0.72
+----------+-----------+   +-----------+-----------+   +-----------+-----------+
|  [ ctrl.srv.world ]  |   |  [snode01.srv.world]  |   |  [snode02.srv.world]  |
|     Control Plane    |   |      Worker Node      |   |      Worker Node      |
+----------------------+   +-----------------------+   +-----------------------+

[1] 全ノードで、Containerd をインストールし、システム要件を満たすよう各設定を適用しておきます。
root@ctrl:~#
apt -y install containerd iptables apt-transport-https gnupg2 curl sudo
root@ctrl:~#
containerd config default | tee /etc/containerd/config.toml

root@ctrl:~#
vi /etc/containerd/config.toml
# 61行目 : 変更
sandbox_image = "registry.k8s.io/pause:3.9"

# 125行目 : 変更
SystemdCgroup = true

root@dlp:~#
systemctl restart containerd.service
root@ctrl:~#
cat > /etc/sysctl.d/99-k8s-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
EOF
root@ctrl:~#
sysctl --system
root@ctrl:~#
modprobe overlay; modprobe br_netfilter

root@ctrl:~#
echo -e overlay\\nbr_netfilter > /etc/modules-load.d/k8s.conf
# iptables のバックエンドは [iptables-legacy]
# nftables になっている場合は要変更

root@ctrl:~#
update-alternatives --config iptables

There are 2 choices for the alternative iptables (providing /usr/sbin/iptables).

  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/sbin/iptables-nft      20        auto mode
  1            /usr/sbin/iptables-legacy   10        manual mode
  2            /usr/sbin/iptables-nft      20        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode

# swap は要無効化

root@ctrl:~#
swapoff -a

root@ctrl:~#
vi /etc/fstab
# swap 行はコメント化
#/dev/mapper/debian--vg-swap_1 none            swap    sw              0       0
[2] 全ノードで Kubeadm, Kubelet, Kubectl をインストールします。
root@ctrl:~#
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

root@ctrl:~#
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list

root@ctrl:~#
apt update

root@ctrl:~#
apt -y install kubeadm kubelet kubectl

root@ctrl:~#
ln -s /opt/cni/bin /usr/lib/cni

関連コンテンツ