Linux

Как установить Kubernetes на Linux: пошаговое руководство для начинающих

В этом руководстве описаны пошаговые инструкции по установке Kubernetes на Linux, включая подготовку системы, настройку master-узла и worker-узлов, а также проверку работоспособности кластера.

Обновлено 31 июля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04 LTSUbuntu 20.04 LTSDebian 11 BullseyeCentOS Stream 9

Введение / Зачем это нужно

Установка Kubernetes на Linux позволяет вам создать мощную среду для оркестрации контейнеров. После завершения этого руководства вы сможете развернуть работоспособный кластер Kubernetes, добавлять рабочие узлы и проверять его работоспособность.

Требования / Подготовка

  • Операционные системы: Ubuntu 22.04 LTS, Ubuntu 20.04 LTS, Debian 11 Bullseye, CentOS Stream 9 (64-битные версии).
  • Аппаратные ресурсы: не менее 2 CPU, 4 GB RAM, 10 GB свободного места на разделе /.
  • Сеть: статический IP на каждом хосте, отключенный брандмауэр (ufw disable / iptables -F), включенное IPv4-переадресация (sysctl net.ipv4.ip_forward=1).
  • Docker (для установок с помощью kubeadm) — последняя стабильная версия.
  • Права root / sudo для выполнения команд.

💡 Совет: Убедитесь, что у вас есть SSH-доступ для управления удалёнными хостами.

Пошаговая инструкция

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

Отключите подкачку, удалите её из fstab, загрузите необходимые ядреные модули и настройте sysctl параметры.

# Выключение подкачки
sudo swapoff -a
# Удаление записи подкачки из fstab (если есть)
sudo sed -i '/swap/d' /etc/fstab

# Загрузка модулей
sudo modprobe br_netfilter

# Создание файлов модулей
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter

# Настройка sysctl для поддержки bridge и IP-форвардинга
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: Установка компонентов Kubernetes

Добавьте официальный репозиторий Kubernetes и установите основные утилиты (kubelet, kubeadm, kubectl). Пример для Ubuntu/Debian:

# Обновление пакетов и установка curl
sudo apt-get update
sudo apt-get install -y curl

# Добавление ключа репозитория
curl -fsSL https://pkgs.k8s.io/repositories.releases.k8s.io/deb/release.key | sudo gpg --dearmor -o /etc/apt/keyrings/k8s-apt-keyring.gpg

# Добавление репозитория
echo 'deb [signed-by=/etc/apt/keyrings/k8s-apt-keyring.gpg] https://pkgs.k8s.io/repositories.releases.k8s.io/deb/ /' | sudo tee /etc/apt/sources.list.d/k8s.list

# Установка компонентов
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet

Для CentOS/RHEL используйте yum/yum-utils. После установки убедитесь, что версии соответствуют выбранной (например, v1.28.x).

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

Инициализируйте master-узел с помощью kubeadm init, сохраните команду для подключения worker-узлов и настройте kubectl для текущего пользователя.

# Инициализация master-узла (замените CIDR при необходимости)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 > kubeadm-init.log

# Сохранение join-команды
sudo kubeadm token create --print-join-command > /tmp/join-command.sh
chmod +x /tmp/join-command.sh

# Копирование конфигурации admin.conf в домашнюю директорию
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Разверните сетевую политику (Calico — пример):

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26/manifests/calico.yaml

Шаг 4: Подготовка worker-узлов

На каждом дополнительном узле выполните команду, сохранённую в /tmp/join-command.sh.

# На worker-узле выполните следующее:
sudo bash /tmp/join-command.sh

После успешного подключения проверьте ноды:

kubectl get nodes

Ожидаемый результат: оба узла с состоянием Ready.

Шаг 5: Проверка работоспособности

Убедитесь, что кластер работает, запустите тестовый pod и при желании откройте Kubernetes Dashboard.

# Проверка нод
kubectl get nodes
# Проверка подов во всех неймспейсах
kubectl get pods -A

# Создание простого тестового pod'а
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: hello-pod
spec:
  containers:
  - name: hello
    image: nginx
    ports:
    - containerPort: 80
EOF
kubectl get pod hello-pod

Для доступа к панели управления:

# Запустите прокси (в отдельном терминале)
kubectl proxy &
# Откройте http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

Проверка результата

  • Оба узла отображаются как Ready.
  • Поды kube-system (сеть, контроллер менеджер и т.д.) находятся в состоянии Running.
  • Тестовый pod hello-pod работает и может быть достигнут по имени.

Если все пункты выполнены, кластер Kubernetes готов к использованию.

Возможные проблемы

ПроблемаРешение
/etc/modules-load.d/k8s.conf: Нет такого файла или каталогаУбедитесь, что параметры sysctl записаны в файл, перезапустите систему или вручную выполните modprobe overlay и modprobe br_netfilter.
kubeadm: ошибка: не удалось проверить конфигурацию: 'не удалось загрузить пакеты для требуемого 'kubelet'Обновите пакеты: sudo apt-get upgrade kubelet kubeadm kubectl (Debian/Ubuntu) или переустановите их.
kubectl: невозможно связаться с сервером: получено недоступное для подключенияПроверьте, что master-узел запущен (sudo systemctl status kubelet), и что /etc/kubernetes/admin.conf доступен.
Calico не устанавливает pod-сетьПроверьте, что CIDR (--pod-network-cidr) совпадает с конфигурацией Calico, убедитесь, что сетевые интерфейсы не имеют конфликтов IP, и что IP-форвардинг включён.

⚠️ Важно: После любых изменений в сети или конфигурации перезапустите сервисы (sudo systemctl restart kubelet), чтобы изменения вступили в силу.

Часто задаваемые вопросы

Какие системные требования нужны для установки Kubernetes?
Почему я должен использовать kubeadm вместо других инструментов?
Как проверить, что кластер Kubernetes работает?
Что делать, если установка не удалась из-за ошибок сетевого интерфейса?

Полезное

Подготовка системы
Установка компонентов Kubernetes
Инициализация master-узла
Подготовка worker-узлов
Проверка работоспособности