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

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

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

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

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

Введение

Kubernetes (K8s) – платформа для оркестрации контейнерных приложений. В этом руководстве мы:

  • Установим минимальный production-ready кластер
  • Настроим сетевое взаимодействие
  • Проверим работоспособность системы
  • Рассмотрим частые проблемы

Требования

Минимальные требования:

  • 2+ ядра CPU
  • 2+ ГБ RAM
  • 20+ ГБ дискового пространства
  • Ubuntu 23.10 (обновленная)
  • Доступ с правами sudo

Обязательные условия:

  • Отключенный swap: swapoff -a
  • Уникальные hostnames на всех узлах
  • Совпадение времени на всех узлах (NTP)

Установка

Полная установка Kubernetes Cluster

Подготовка

1# Обновление пакетов
2sudo apt update && sudo apt upgrade -y
3
4# Установка зависимостей
5sudo apt install -y apt-transport-https ca-certificates curl
6
7# Добавление GPG-ключей
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# Настройка параметров ядра
14cat << EOF | sudo tee /etc/modules-load.d/k8s.conf
15br_netfilter
16EOF
17
18cat << EOF | sudo tee /etc/sysctl.d/k8s.conf
19net.bridge.bridge-nf-call-ip6tables = 1
20net.bridge.bridge-nf-call-iptables = 1
21EOF
22
23sudo sysctl --system
24
25
26### Процесс установки
27
28```bash
29# Установка компонентов
30sudo apt update
31sudo apt install -y kubelet kubeadm kubectl
32sudo apt-mark hold kubelet kubeadm kubectl
33
34# Инициализация кластера (на master-узле)
35sudo kubeadm init --pod-network-cidr=10.244.0.0/16
36
37# Настройка конфигурации для пользователя
38mkdir -p $HOME/.kube
39sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
40sudo chown $(id -u):$(id -g) $HOME/.kube/config
41
42# Установка сетевого плагина (Calico)
43kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

Проверка:

1kubectl get nodes
2kubectl get pods --all-namespaces

Настройка

Базовая конфигурация кластера:

  1. Добавление worker-узлов:
1kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash <hash>
  1. Настройка автоматического завертывания обновлений:
1sudo systemctl enable kubelet
  1. Настройка автодополнения для kubectl:
1echo 'source <(kubectl completion bash)' >> ~/.bashrc

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

1. Ошибка cgroup driver: error: failed to run Kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"

Решение:

1sudo mkdir /etc/docker
2cat << EOF | sudo tee /etc/docker/daemon.json
3{
4  "exec-opts": ["native.cgroupdriver=systemd"]
5}
6EOF
7sudo systemctl restart docker

2. Нода в статусе NotReady: Проверьте:

  • Состояние сетевого плагина
  • Ограничения firewall
  • Соответствие версий компонентов

Заключение

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

  • Настройте RBAC-политики
  • Установите Dashboard интерфейс
  • Настройте мониторинг через Prometheus
  • Регулярно обновляйте компоненты безопасности

Команды

Установка зависимостей

1sudo apt install -y apt-transport-https ca-certificates curl

Добавление репозитория Kubernetes

1echo 'deb https://apt.kubernetes.io/ kubernetes-xenial main' | sudo tee /etc/apt/sources.list.d/kubernetes.list

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

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

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

Ошибка подключения к API-серверу

Проверьте статус kubelet: systemctl status kubelet Убедитесь что admin.conf настроен правильно

1sudo journalctl -u kubelet -f

Сетевые пакеты не проходят между нодами

Проверьте установку сетевого плагина Отключите firewall или настройте правила

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