3.3 KiB
3.3 KiB
# === Стать root (если ещё не) ===
sudo -i
# === 1. Обновление пакетов и базовые утилиты ===
apt-get update -y
apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
# === 2. Отключить swap немедленно ===
swapoff -a
# === 3. Убрать swap из /etc/fstab (чтобы не включался после перезагрузки) ===
cp /etc/fstab /etc/fstab.bak
sed -i '/ swap / s/^/#/' /etc/fstab
# === 4. Включить модули ядра overlay и br_netfilter ===
cat <<EOF >/etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
# === 5. Настроить sysctl для Kubernetes и containerd ===
cat <<EOF >/etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
# === 6. Установить containerd ===
apt-get install -y containerd
# === 7. Сгенерировать конфиг containerd и включить SystemdCgroup ===
mkdir -p /etc/containerd
containerd config default >/etc/containerd/config.toml
# Включаем SystemdCgroup
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# (Опционально) Убедиться, что пути CNI прописаны как /opt/cni/bin и /etc/cni/net.d
sed -i 's@bin_dir = .*@bin_dir = "/opt/cni/bin"@' /etc/containerd/config.toml
sed -i 's@conf_dir = .*@conf_dir = "/etc/cni/net.d"@' /etc/containerd/config.toml
systemctl restart containerd
systemctl enable containerd
# === 8. Подготовить директории для CNI-плагинов ===
mkdir -p /opt/cni/bin
mkdir -p /etc/cni/net.d
# === 9. Фикс пути для flannel: /usr/lib/cni → /opt/cni/bin ===
# ВАЖНО: если каталог /usr/lib/cni уже существует — ЭТУ команду пропусти
ln -s /opt/cni/bin /usr/lib/cni
# === 10. Добавить официальный репозиторий Kubernetes (pkgs.k8s.io, ветка v1.34) ===
mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key \
| gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /
EOF
apt-get update -y
# === 11. Установить kubelet, kubeadm, kubectl и зафиксировать версии ===
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl