Установка и настройка Kubernetes на linux ubuntu 24.04
Подробное руководство по установке, настройке и оптимизации Kubernetes для linux ubuntu 24.04
Введение
Kubernetes - мощная система оркестрации контейнеров, позволяющая автоматизировать развертывание, масштабирование и управление приложениями. В этом руководстве мы подробно разберем установку и базовую настройку Kubernetes на Ubuntu 24.04, включая решение распространенных проблем.
Требования
Перед началом установки убедитесь, что:
- Минимум 2 ГБ ОЗУ на узле
- 2 CPU ядра
- Отключен swap
- Стабильное интернет-соединение
- Права root/sudo
- Установлен Docker (версия 24.0+)
- Все узлы в одной сети
Минимальные системные требования:
CPU: 2 ядра
RAM: 2 GB
Диск: 20 GB
Установка
Подготовка
- Обновите систему:
sudo apt update && sudo apt upgrade -y
- Отключите swap:
sudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab
- Установите базовые зависимости:
1sudo apt install -y apt-transport-https ca-certificates curl
Процесс установки
- Установите Docker:
1sudo apt install -y docker.io 2sudo systemctl enable --now docker
- Добавьте репозиторий Kubernetes:
1curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg 2echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
- Установите компоненты Kubernetes:
1sudo apt update 2sudo apt install -y kubelet kubeadm kubectl 3sudo apt-mark hold kubelet kubeadm kubectl
Настройка
- Инициализируйте кластер (на мастере):
1sudo kubeadm init --pod-network-cidr=192.168.0.0/16
- Настройте доступ для обычного пользователя:
1mkdir -p $HOME/.kube 2sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 3sudo chown $(id -u):$(id -g) $HOME/.kube/config
- Установите сетевой плагин Calico:
1kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- Проверьте статус узлов:
1kubectl get nodes
Типичные ошибки и их решения
Ошибка: kubelet не запускается
Решение:
1sudo systemctl restart kubelet 2journalctl -xeu kubelet
Нет подключения между подами
Решение: Проверьте статус сетевого плагина:
1kubectl get pods -n kube-system
Ошибка CRI v1 runtime API
Решение: Перезапустите Docker:
sudo systemctl restart docker
Заключение
Вы успешно установили Kubernetes на Ubuntu 24.04. Для дальнейшей настройки:
- Добавьте рабочие узлы с
kubeadm join
- Настройте Ingress-контроллер
- Включите мониторинг с помощью Prometheus
Проверьте работоспособность кластера:
1kubectl get all --all-namespaces
Команды
Установка Docker
1sudo apt install -y docker.io
Добавление репозитория Kubernetes
1curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg 2echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Инициализация кластера
1sudo kubeadm init --pod-network-cidr=192.168.0.0/16
Решение проблем
Ошибка при инициализации кластера
Проверьте статус kubelet и docker. Убедитесь, что порты 6443 и 10250 открыты
sudo systemctl status kubelet docker
Узлы в статусе NotReady
Проверьте установку сетевого плагина и состояние сетевых интерфейсов
1kubectl describe node <node-name>
Ошибка cgroup driver
Настройте единый cgroup driver для Docker и kubelet
1sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml 2sudo systemctl restart containerd