Skip to content

Установка Kubernetes на Ubuntu

✅ Установка Kubernetes на Ubuntu (подходит для Ubuntu 20.04, 22.04, 24.04 и 25)

Эта инструкция устанавливает локальный кластер Kubernetes с помощью kubeadm (официальный способ от CNCF).


🔧 Шаг 1: Подготовка системы

Запустите на всех узлах (master и worker):

sudo apt update && sudo apt upgrade -y

Отключите swap (обязательно для k8s)

sudo swapoff -a
# Чтобы отключить swap навсегда:
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Настройка iptables и модули ядра

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# Настройка sysctl
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system

🐳 Шаг 2: Установка containerd (или Docker)

Kubernetes рекомендует использовать containerd.

sudo apt install -y containerd

# Настройка containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# Измените драйвер cgroups на systemd (важно!)
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

# Перезапуск
sudo systemctl restart containerd
sudo systemctl enable containerd

🌐 Шаг 3: Установка kubeadm, kubelet, kubectl

Добавьте репозиторий Kubernetes:

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

⚠️ Замените v1.30 на актуальную версию Kubernetes, когда будете устанавливать.


🧱 Шаг 4: Инициализация master-узла

На master-узле выполните:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

--pod-network-cidr=10.244.0.0/16 — необходимо для Flannel. Если будете использовать Calico — уточните CIDR.

После успешной инициализации выполните:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

🌐 Шаг 5: Установка CNI (сетевой плагин)

Например, Flannel:

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

Или Calico:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

🖥️ Шаг 6: Подключение worker-узлов

На worker-узлах выполните команду, которую выдал kubeadm init, например:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef \
    --discovery-token-ca-cert-hash sha256:abcdef123456789...

✅ Проверка

На master-узле:

kubectl get nodes

Вы должны увидеть все узлы в статусе Ready.


🧩 Дополнительно: Установка kubectl на локальную машину

Если вы хотите управлять кластером с другого компьютера:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

Скопируйте конфиг с master-узла: ~/.kube/config


📝 Примечания

  • Ubuntu 25 основана на Debian 13 (trixie), и, скорее всего, поддержка k8s аналогична.
  • Убедитесь, что у вас установлены актуальные версии пакетов и поддерживаемая версия Kubernetes.
  • Для production рекомендуется использовать HA-кластер и etcd в отдельных нодах.

Хотите установить MicroK8s (упрощённый способ)? Вот команда:

sudo snap install microk8s --classic
sudo usermod -a -G microk8s $USER
newgrp microk8s
microk8s status --wait-ready
microk8s enable dashboard dns