Установка 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