Главная > ОС > Linux > Ubuntu > 20.04 > Установка и настройка Kubernetes на linux ubuntu 20.04

Установка и настройка Kubernetes на linux ubuntu 20.04

Обновлено: 15.04.2025Руководство

Установка и настройка Kubernetes на linux ubuntu 20.04

Подробное руководство по установке, настройке и оптимизации Kubernetes для linux ubuntu 20.04

Введение

Kubernetes (k8s) - мощная система оркестрации контейнеров для автоматизации развертывания, масштабирования и управления приложениями. Это руководство поможет:

  • Установить последнюю стабильную версию Kubernetes
  • Настроить кластер с одним мастер-узлом
  • Подключить сетевой плагин
  • Решить типичные проблемы при развертывании

Требования

Перед началом убедитесь, что:

  • 2+ ГБ оперативной памяти
  • 2+ ядра CPU
  • Ubuntu 20.04 LTS (Focal Fossa)
  • Права sudo/root
  • Стабильное интернет-соединение
  • Отключен swap: swapoff -a
  • Уникальные hostnames для всех узлов

Установка

Подготовка

1# Обновить пакеты
2sudo apt update && sudo apt upgrade -y
3
4# Установить базовые зависимости
5sudo apt install -y apt-transport-https ca-certificates curl
6
7# Добавить GPG-ключ Kubernetes
8curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
9
10# Добавить репозиторий
11echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
12
13# Обновить кэш пакетов
14sudo apt update

Процесс установки

1# Установить компоненты
2sudo apt install -y kubelet kubeadm kubectl
3
4# Закрепить версии пакетов
5sudo apt-mark hold kubelet kubeadm kubectl
6
7# Инициализировать кластер
8sudo kubeadm init --pod-network-cidr=10.244.0.0/16
9
10# Настроить доступ для пользователя
11mkdir -p $HOME/.kube
12sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
13sudo chown $(id -u):$(id -g) $HOME/.kube/config
14
15# Установить сетевой плагин (Calico)
16kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

Настройка

После успешной установки:

  1. Проверить статус узлов:
1kubectl get nodes
  1. Убедиться, что все поды в состоянии Running:
1kubectl get pods --all-namespaces
  1. Для добавления worker-узлов используйте команду из вывода kubeadm init
  2. Настроить автоматический запуск служб:
1sudo systemctl enable kubelet

Типичные ошибки и их решения

Ошибка: 'kubelet не запущен'

  • Решение: Проверить журнал systemd: journalctl -xeu kubelet

Ошибка: 'crictl not found'

  • Решение: Установить CRI tools: sudo apt install -y cri-tools

Проблема: Ноды в состоянии NotReady

  • Решение: Проверить сетевой плагин и фаервол:
sudo ufw allow 6443/tcp
sudo ufw allow 10250/tcp

Заключение

Вы успешно развернули Kubernetes кластер на Ubuntu 20.04. Для дальнейшей настройки:

  • Добавьте worker-узлы
  • Настройте Persistent Volumes
  • Установите Dashboard интерфейс
  • Включите мониторинг через Prometheus

Команды

Обновление пакетов системы

sudo apt update && sudo apt upgrade -y

Установка основных компонентов Kubernetes

1sudo apt install -y kubelet kubeadm kubectl

Инициализация кластера

1sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Проверка состояния узлов

1kubectl get nodes

Решение проблем

Ошибка cgroup driver mismatch

Синхронизировать драйверы Docker и kubelet

1sudo sed -i 's/^ExecStart=.*/ExecStart=/usr/bin/dockerd -H fd:// --containerd=\/run\/containerd\/containerd.sock --exec-opt native.cgroupdriver=systemd/' /lib/systemd/system/docker.service && sudo systemctl daemon-reload && sudo systemctl restart docker

Порт 6443 недоступен

Проверить фаервол и запущенные сервисы

sudo lsof -i :6443 && sudo ufw allow 6443/tcp

Сетевой плагин не работает

Переустановить Calico с правильным CIDR

1kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml