Files
private-ai-platform/ansible/roles/k8s/readme/install-k8scommon.md
Hrankin, Aleksandr (contracted) f243f440c3 init
2026-02-19 11:34:13 +00:00

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