```bash # === Стать root (если ещё не) === sudo -i ``` ```bash # === 1. Обновление пакетов и базовые утилиты === apt-get update -y apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release ``` ```bash # === 2. Отключить swap немедленно === swapoff -a ``` ```bash # === 3. Убрать swap из /etc/fstab (чтобы не включался после перезагрузки) === cp /etc/fstab /etc/fstab.bak sed -i '/ swap / s/^/#/' /etc/fstab ``` ```bash # === 4. Включить модули ядра overlay и br_netfilter === cat </etc/modules-load.d/k8s.conf overlay br_netfilter EOF modprobe overlay modprobe br_netfilter ``` ```bash # === 5. Настроить sysctl для Kubernetes и containerd === cat </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 ``` ```bash # === 6. Установить containerd === apt-get install -y containerd ``` ```bash # === 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 ``` ```bash # === 8. Подготовить директории для CNI-плагинов === mkdir -p /opt/cni/bin mkdir -p /etc/cni/net.d ``` ```bash # === 9. Фикс пути для flannel: /usr/lib/cni → /opt/cni/bin === # ВАЖНО: если каталог /usr/lib/cni уже существует — ЭТУ команду пропусти ln -s /opt/cni/bin /usr/lib/cni ``` ```bash # === 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 </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 ``` ```bash # === 11. Установить kubelet, kubeadm, kubectl и зафиксировать версии === apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl ```