Введение
Kubernetes — мощный инструмент для оркестровки контейнеров, но его установка может показаться сложной. С помощью kubeadm вы можете быстро создать рабочий кластер Kubernetes на любом современном дистрибутиве Linux. В этом руководстве вы узнаете, как за 15 минут установить контрольную точку Kubernetes на Ubuntu, Debian или CentOS, присоединить воркер-узлы и проверить, что кластер готов к работе.
Требования
- ОС: Ubuntu 20.04 LTS / 22.04 LTS, Debian 11 или CentOS 8 (или совместимые дистрибутивы).
- Права суперпользователя (
root), для выполнения команд установки. - Минимум 2 CPU и 2 GB оперативной памяти.
- Предустановленный контейнерный runtime (рекомендуется
containerd). - Доступ в интернет для загрузки пакетов Kubernetes.
Пошаговая инструкция
Шаг 1: Подготовка системы
- Отключите временный swap:
sudo swapoff -a - Постоянно отключите swap, отредактировав
/etc/fstab(удалите строку, содержащуюswap) - Установите
containerd:sudo apt install -y containerd - Настройте
containerdдля работы с kubelet:sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml
Отредактируйте файл и установитеSystemdCgroup = true - Подключите необходимые модули ядра:
sudo modprobe br_netfilter echo 'net.bridge.bridge-nf-call-iptables = 1' | sudo tee /etc/sysctl.d/k8s.conf sudo sysctl reload
Шаг 2: Установка kubeadm и вспомогательных инструментов
- Добавьте репозиторий Kubernetes и GPG-ключ:
sudo apt-get update && sudo apt-get install -y apt-transport-https curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg echo 'deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list - Установите пакеты:
sudo apt-get update && sudo apt-get install -y kubeadm kubelet kubectl sudo apt-mark hold kubeadm kubelet kubectl
:
Шаг 3: Инициализация контрольной точки Kubernetes
- Выполните инициализацию master-узла:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 - Сохраните команду для присоединения воркера (она появится в выводе) и настройте
kubectlдля текущего пользователя:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Шаг 4: Подготовка и присоединение воркеров
На каждом воркер-узле:
- Установите те же пакеты, что и на мастере:
sudo apt-get update && sudo apt-get install -y containerd kubelet kubectl sudo apt-mark hold kubelet kubectl - Присоединитесь к кластеру с помощью команды, полученной на мастере:
sudo kubeadm join <IP-адрес-мастера>:6443 --token <токен> --discovery-token-ca-cert-hash sha256:<хеш>
Шаг 5: Проверка кластера
- Проверьте состояние узлов:
kubectl get nodes
Все узлы должны находиться в состоянии Ready - Для просмотра подов:
kubectl get pods -A
Проверка результата
Кластер считается работоспособным, если:
kubectl get nodesвыводит оба узла (мастер и воркер) со статусомReady.kubectl cluster-infoпоказывает URL-адрес API-сервера.- Поды в namespace
kube-systemнаходятся в состоянииRunning(например,coredns,kube-proxy).
Если что-то не так, проверьте логи kubelet (journalctl -u kubelet) и сообщения мастера (/var/log/kubernetes/kubeadm.log).
Возможные проблемы
- Swap не отключен → выполните
sudo swapoff -aи отредактируйте/etc/fstab. - Ошибки сетевого плагина → проверьте CIDR в
kubeadm init, он должен совпадать с сетевым планом (например, Calico). - Неправильные версии containerd/kubelet → установите совместимые версии, используйте
apt-mark hold. - Токен устарел → запросите новый с помощью
kubeadm token create. - Iptables блокирует трафик → убедитесь, что
net.bridge.bridge-nf-call-iptables=1установлено, и перезапуститеiptables.
Следуйте этим советам, и вы быстро устраните наиболее распространенные ошибки. Удачной работы с Kubernetes!