Главная > ОС > Linux > Centos > 9 > Установка и настройка Kubernetes на Linux CentOS 9

Установка и настройка Kubernetes на Linux CentOS 9

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

Установка и настройка Kubernetes на Linux CentOS 9

Пошаговое руководство по развертыванию Kubernetes-кластера с использованием kubeadm на CentOS 9

Введение

Kubernetes - мощная система оркестрации контейнеров, позволяющая управлять распределенными приложениями. В этом руководстве мы настроим кластер из одного узла для тестирования и разработки.

Требования

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

  • Минимальные системные требования: 2 CPU, 2GB RAM, 20GB HDD
  • Статический IP-адрес на сервере
  • Доступ с правами root или через sudo
  • Отключен SELinux или настроен в permissive режиме
  • Выключен swap

Установка

Подготовка

1# Отключение swap
2sudo swapoff -a
3sudo sed -i '/ swap / s/^/#/' /etc/fstab
4
5# Настройка сетевых параметров
6cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
7br_netfilter
8EOF
9
10cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
11net.bridge.bridge-nf-call-ip6tables = 1
12net.bridge.bridge-nf-call-iptables = 1
13EOF
14
15sudo sysctl --system
16
17# Установка Docker
18sudo dnf install -y docker
19sudo systemctl enable --now docker

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

1# Добавление репозитория Kubernetes
2cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
3[kubernetes]
4name=Kubernetes
5baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
6enabled=1
7gpgcheck=1
8gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
9EOF
10
11# Установка компонентов
12sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
13
14# Запуск kubelet
15sudo systemctl enable --now kubelet
16
17# Инициализация кластера
18sudo kubeadm init --pod-network-cidr=192.168.0.0/16
19
20# Настройка конфигурации
21mkdir -p $HOME/.kube
22sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
23sudo chown $(id -u):$(id -g) $HOME/.kube/config

Настройка

1# Установка сетевого плагина Calico
2kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
3kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml
4
5# Проверка состояния кластера
6kubectl get nodes
7kubectl get pods --all-namespaces

Важно: Для production-окружения настройте:

  • TLS-аутентификацию
  • RBAC-правила
  • Network Policies

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

Заключение

Теперь у вас работает базовый Kubernetes-кластер. Для дальнейшей настройки изучите документацию Kubernetes и рассмотрите:

  • Установку Dashboard
  • Настройку persistent storage
  • Реализацию мониторинга

Команды

Проверка версии Kubernetes

1kubectl version --short

Просмотр состояния узлов

1kubectl get nodes -o wide

Перезапуск kubelet

sudo systemctl restart kubelet

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

Ошибка cgroup driver

Убедитесь, что Docker и kubelet используют одинаковый cgroup driver

1sudo sed -i 's/^ExecStart=.*/ExecStart=\/usr\/bin\/kubelet --cgroup-driver=systemd/' /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
2sudo systemctl daemon-reload
3sudo systemctl restart kubelet

Сбой при инициализации кластера

Выполните сброс и повторную инициализацию

1sudo kubeadm reset -f
2sudo rm -rf /etc/kubernetes/*

Ноды в статусе NotReady

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

1sudo firewall-cmd --permanent --add-port={6443,2379-2380,10250,10259,10257}/tcp
2sudo firewall-cmd --reload