Setup Kubernetes Cluster Using Kubeadm: Difference between revisions

From wiki.baghirzade.pro
Jump to navigation Jump to search
Blanked the page
Tags: Blanking Visual edit
No edit summary
Line 1: Line 1:
На каждую VM:


* CPU: '''2+ vCPU''' (control-plane лучше 2–4)
* RAM: '''min 2GB''', лучше '''4GB''' (control-plane 4–8GB)
* Disk: '''20GB+'''
* Сеть: все VM '''в одной L2 сети''', чтобы они пинговались по <code>172.16.221.0/24</code>.
Важно для клонов VM:
* у каждой ноды должны быть '''уникальные hostname, MAC и product_uuid''' (kubeadm ругается если одинаковые). Проверка:
<syntaxhighlight lang="bash">
hostname
ip link | grep link/
sudo cat /sys/class/dmi/id/product_uuid
</syntaxhighlight>(уникальность прямо указана в kubeadm prerequisites
== 1) Присвой имена и пропиши hosts (на ВСЕХ нодах) ==
На каждой ноде задай hostname:
'''cp1:'''<syntaxhighlight lang="bash">
sudo hostnamectl set-hostname cp1
</syntaxhighlight>'''worker1:'''<syntaxhighlight lang="bash">
sudo hostnamectl set-hostname worker1
</syntaxhighlight>'''worker2:'''<syntaxhighlight lang="bash">
sudo hostnamectl set-hostname worker2
</syntaxhighlight>'''worker3:'''<syntaxhighlight lang="bash">
sudo hostnamectl set-hostname worker3
</syntaxhighlight>На '''всех''' нодах добавь в <code>/etc/hosts</code>:<syntaxhighlight lang="bash">
sudo tee -a /etc/hosts >/dev/null <<'EOF'
172.16.221.10 cp1
172.16.221.11 worker1
172.16.221.12 worker2
172.16.221.13 worker3
EOF
</syntaxhighlight>2) Базовая подготовка ОС (на ВСЕХ нодах)
2.1 Отключи swap (обязательно)<syntaxhighlight lang="bash">
sudo swapoff -a
sudo sed -i '/\sswap\s/s/^/#/' /etc/fstab
</syntaxhighlight>2.2 Включи нужные модули + sysctl<syntaxhighlight lang="bash">
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/modules-load.d/k8s.conf >/dev/null <<'EOF'
overlay
br_netfilter
EOF
</syntaxhighlight>Sysctl:<syntaxhighlight lang="bash">
sudo tee /etc/sysctl.d/k8s.conf >/dev/null <<'EOF'
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system
</syntaxhighlight>Проверка (ip_forward должен быть 1) <syntaxhighlight lang="bash">
sysctl net.ipv4.ip_forward
</syntaxhighlight>3) Установка containerd (на ВСЕХ нодах)
3.1 Поставь containerd<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get install -y containerd
</syntaxhighlight>3.2 Сгенерируй конфиг и включи SystemdCgroup<syntaxhighlight lang="bash">
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml >/dev/null
</syntaxhighlight>Открой файл:<syntaxhighlight lang="bash">
sudo nano /etc/containerd/config.toml
</syntaxhighlight>Найди секцию runc options и поставь:
* для containerd '''1.x''':
<syntaxhighlight lang="bash">
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true
</syntaxhighlight>
* для containerd 2'''.x''':

Revision as of 13:34, 7 January 2026

На каждую VM:

  • CPU: 2+ vCPU (control-plane лучше 2–4)
  • RAM: min 2GB, лучше 4GB (control-plane 4–8GB)
  • Disk: 20GB+
  • Сеть: все VM в одной L2 сети, чтобы они пинговались по 172.16.221.0/24.

Важно для клонов VM:

  • у каждой ноды должны быть уникальные hostname, MAC и product_uuid (kubeadm ругается если одинаковые). Проверка:
hostname
ip link | grep link/
sudo cat /sys/class/dmi/id/product_uuid

(уникальность прямо указана в kubeadm prerequisites

1) Присвой имена и пропиши hosts (на ВСЕХ нодах)

На каждой ноде задай hostname:

cp1:

sudo hostnamectl set-hostname cp1

worker1:

sudo hostnamectl set-hostname worker1

worker2:

sudo hostnamectl set-hostname worker2

worker3:

sudo hostnamectl set-hostname worker3

На всех нодах добавь в /etc/hosts:

sudo tee -a /etc/hosts >/dev/null <<'EOF'
172.16.221.10 cp1
172.16.221.11 worker1
172.16.221.12 worker2
172.16.221.13 worker3
EOF

2) Базовая подготовка ОС (на ВСЕХ нодах) 2.1 Отключи swap (обязательно)

sudo swapoff -a
sudo sed -i '/\sswap\s/s/^/#/' /etc/fstab

2.2 Включи нужные модули + sysctl

sudo modprobe overlay
sudo modprobe br_netfilter

sudo tee /etc/modules-load.d/k8s.conf >/dev/null <<'EOF'
overlay
br_netfilter
EOF

Sysctl:

sudo tee /etc/sysctl.d/k8s.conf >/dev/null <<'EOF'
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

sudo sysctl --system

Проверка (ip_forward должен быть 1)

sysctl net.ipv4.ip_forward

3) Установка containerd (на ВСЕХ нодах) 3.1 Поставь containerd

sudo apt-get update
sudo apt-get install -y containerd

3.2 Сгенерируй конфиг и включи SystemdCgroup

sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml >/dev/null

Открой файл:

sudo nano /etc/containerd/config.toml

Найди секцию runc options и поставь:

  • для containerd 1.x:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true
  • для containerd 2.x: