init
This commit is contained in:
109
ansible/roles/k8s/readme/install-k8scommon.md
Normal file
109
ansible/roles/k8s/readme/install-k8scommon.md
Normal file
@@ -0,0 +1,109 @@
|
||||
```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 <<EOF >/etc/modules-load.d/k8s.conf
|
||||
overlay
|
||||
br_netfilter
|
||||
EOF
|
||||
|
||||
modprobe overlay
|
||||
modprobe br_netfilter
|
||||
```
|
||||
|
||||
```bash
|
||||
# === 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
|
||||
```
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
<!-- # === 9. Установить CNI-плагины (официальный набор) ===
|
||||
```bash
|
||||
curl -L -o /tmp/cni-plugins.tgz \
|
||||
"https://github.com/containernetworking/plugins/releases/download/v1.5.1/cni-plugins-linux-amd64-v1.5.1.tgz"
|
||||
|
||||
tar -C /opt/cni/bin -xzvf /tmp/cni-plugins.tgz
|
||||
``` -->
|
||||
|
||||
<!-- # === 10. (Опционально) Симлинк /usr/lib/cni -> /opt/cni/bin, если НЕ существует ===
|
||||
if [ ! -e /usr/lib/cni ]; then
|
||||
ln -s /opt/cni/bin /usr/lib/cni
|
||||
fi -->
|
||||
|
||||
```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 <<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
|
||||
```
|
||||
|
||||
```bash
|
||||
# === 11. Установить kubelet, kubeadm, kubectl и зафиксировать версии ===
|
||||
apt-get install -y kubelet kubeadm kubectl
|
||||
apt-mark hold kubelet kubeadm kubectl
|
||||
```
|
||||
Reference in New Issue
Block a user