Как установить Kubernetes — гайд для новичков
Kubernetes можно развернуть разными способами — всё зависит от ваших целей, например:
Учёба, эксперименты, отладка - Minikube, Kind
Локальный кластер с Docker - K3s
Кластер в облаке - GKE (Google), EKS (AWS), AKS (Azure)
Собственный продакшен-кластер - kubeadm, Rancher, RKE2
0. Введение
🧠 Из чего состоит ядро Kubernetes?
Kubernetes построен вокруг понятия кластера — это группа серверов, которые работают вместе как единое целое. Основными строительными блоками кластера являются ноды (Nodes). Нода — это отдельный сервер, на котором выполняются приложения, запущенные в виде контейнеров внутри подов (Pods). В Kubernetes различают два типа нод: Master (Control Plane) и Worker.
Master-нода (Control Plane) — это управляющий узел, мозг всего кластера. На нём запускаются компоненты, которые принимают решения: API-сервер (принимает команды и манифесты), scheduler (решает, на каких нодах запускать приложения), контроллеры (следят за состоянием и выполняют инструкции) и etcd (надёжное хранилище всей информации). Без Master-ноды кластер не может принимать команды и управлять приложениями.
Worker-ноды — это рабочие серверы, на которых непосредственно запускаются контейнеры с приложениями. Каждый воркер запускает компонент под названием kubelet, который связывает ноду с мастером, и контейнерную среду (например, Docker или containerd), управляющую самими контейнерами. Kubernetes использует Worker-ноды как "строительные кирпичики" для масштабирования и отказоустойчивости. Если одна нода выходит из строя, Kubernetes автоматически переносит её нагрузку на другую.
🖥 1. Установка Kubernetes локально
🔹 Minikube — самый популярный способ для локальной отладки
Minikube запускает одиночный нодовый кластер (одна нода) Kubernetes прямо у вас на компьютере (на виртуалке или через Docker).
🔧 Установка:
# Linux/macOS curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
kubectl get nodes
Minikube подходит для обучения, тестов, отладки Helm-чартов, CI/CD.
🔹 Kind (Kubernetes IN Docker)
Kind — лёгкий способ развернуть кластер прямо в Docker-контейнерах.
Установка:
go install sigs.k8s.io/kind@latest
kind create cluster
Отлично подходит для CI/CD и автоматизированных тестов.
🔹 K3s — компактный Kubernetes от Rancher
K3s — это облегчённая версия Kubernetes, идеально подходящая для:
Установка (одна команда!):
curl -sfL https://get.k3s.io | sh -
После установки kubectl
можно использовать сразу:
kubectl get nodes
☁️ 2. Облачные кластеры
Если вы хотите настоящий, отказоустойчивый кластер — берите готовое решение от облака:
🔸 GKE — Google Kubernetes Engine
Создаётся в пару кликов, автоматические обновления, мониторинг.
🔸 EKS — Elastic Kubernetes Service (AWS)
Интеграция с IAM, VPC и AWS-инфраструктурой.
🔸 AKS — Azure Kubernetes Service
Простой старт для .NET/Windows/Azure-разработчиков.
☁️ Облачные кластеры стоят денег, но позволяют перейти к боевому окружению быстро.
Не будем заострять на облачных кластерах внимание, а перейдем к установке кластера на своем оборудовании или виртуальном сервере.
🧱 3. Установка своего кластера (на VPS, bare metal)
Bare metal — это физический сервер, который вы полностью контролируете, включая аппаратную часть. Это буквально отдельный компьютер, который полностью ваш — вы управляете железом напрямую, устанавливаете операционную систему и все необходимые компоненты самостоятельно. А VPS (Virtual Private Server) — это виртуальный сервер, выделенный вам на мощностях физического сервера, который вы делите с другими пользователями. Вы получаете гарантированные ресурсы (процессор, память, диск), но не контролируете само железо. VPS проще, дешевле и быстрее в настройке, а bare metal — мощнее, гибче, но требует более серьёзной поддержки и знаний.
Для продакшен-кластеров вы можете использовать:
kubeadm
— официальный инструмент от разработчиков Kubernetes, который позволяет быстро и надёжно развернуть кластер с нуля на ваших серверах.
Почему kubeadm? Это способ получить полный контроль над вашим кластером — особенно важно в продакшене.
🛠 Что нужно перед началом?
- 2 и больше серверов (один — для Control Plane/Master, другие — Worker-ноды).
- ОС: Ubuntu, Debian, CentOS, RHEL (рекомендуется Ubuntu 22.04).
- Минимум 2 ядра CPU и 2 ГБ RAM на каждую ноду.
- Отключён swap.
📋 Инструкция по установке кластера Kubernetes через kubeadm
✅ Шаг 1. Подготовка сервера (выполняется на всех нодах)
Обновите пакеты и отключите swap:
sudo apt update sudo apt upgrade -y sudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab
Установите Docker (или containerd):
sudo apt install -y docker.io sudo systemctl enable --now docker
✅ Шаг 2. Установка компонентов Kubernetes (на всех нодах)
Добавьте репозиторий Kubernetes:
sudo apt install -y apt-transport-https ca-certificates curl gpg sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/usr/share/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
Установите kubeadm
, kubelet
и kubectl
:
sudo apt install -y kubeadm kubelet kubectl sudo apt-mark hold kubeadm kubelet kubectl
sudo systemctl enable --now kubelet
✅ Шаг 3. Инициализация мастер-ноды (только на первой ноде)
Запускаем мастер-нод с kubeadm init
:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Настройка доступа через kubectl
:
mkdir -p $HOME/.kube sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
✅ Шаг 4. Установка сетевого плагина (на мастере)
Без сети поды не будут видеть друг друга. Установим, например, Flannel:
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
✅ Шаг 5. Подключение воркер-нод к кластеру
Используйте команду, которую вы записали ранее (kubeadm join
), например:
sudo kubeadm join 192.168.1.100:6443 --token <ваш-токен> \ --discovery-token-ca-cert-hash sha256:<ваш-хэш>
Теперь воркер-ноды подключены.
kubectl get nodes
Вы должны увидеть все ноды в состоянии Ready
.
📌 Полезные команды:
Посмотреть поды во всех неймспейсах:
kubectl get pods --all-namespaces
kubectl logs <pod-name>
Посмотреть состояние кластера:
kubectl cluster-info
🚧 Частые ошибки и их решение:
- "Swap is enabled": отключите swap (
sudo swapoff -a
). - Проблемы с сетью подов: проверьте, что сетевой плагин установлен (
kubectl get pods -n kube-flannel
). - "Kubelet not running": убедитесь, что сервис запущен (
systemctl status kubelet
).
Установка Kubernetes черезkubeadm
— это как сборка большого кошачьего домика.
Сначала подготавливаете детали (установка docker, kubelet), затем собираете основу (мастер-нода), подключаете дополнительные модули (воркеры), и в конце даёте домику возможность работать (сетевой плагин). Теперь ваш "кошачий городок" готов принять любые приложения.
✅ Вывод
Установка Kubernetes — это первый шаг в его освоении.
Для новичков лучше всего:
- Minikube — для быстрых экспериментов,
- Kind — для CI/CD и тестов,
- K3s — для лёгкого кластера на своей машине,
- Облако — когда нужно всерьёз.,
🐾 Небольшой кошачий пример
Установка Kubernetes — как выбор дома для кота: Minikube — это коробка в комнате для тестов. K3s — палатка на даче. GKE — котедж с обслуживанием. kubeadm — ты сам строишь дом из кирпичей и тянешь провода.