Содержание

Развертывание кластера Kubernetes из трех нод на Rocky Linux 8

Предварительные требования:

Шаг 1: Подготовка всех нод

Выполните следующие действия на ВСЕХ ТРЕХ МАШИНАХ (master и workers):

  1. Отключите SELinux (рекомендуется для упрощения): bash sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
  2. Отключите и остановите Firewalld (рекомендуется для упрощения): bash sudo systemctl disable --now firewalld
  3. Установите необходимые пакеты и настройте репозиторий Kubernetes: bash sudo yum update -y sudo yum install -y kubeadm kubelet kubectl --disableexcludes=kubernetes
  4. Включите и запустите kubelet: bash sudo systemctl enable --now kubelet
  5. Настройте cgroup драйвер для kubelet и containerd: * Проверьте конфигурацию containerd: bash cat /etc/containerd/config.toml | grep systemd Убедитесь, что SystemdCgroup = true. Если нет, отредактируйте файл /etc/containerd/config.toml и измените значение на true. После этого перезапустите containerd: bash sudo systemctl restart containerd * Создайте файл конфигурации kubelet (если его нет) /etc/sysconfig/kubelet и добавьте следующую строку: KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd" * Перезапустите kubelet: bash sudo systemctl restart kubelet

Шаг 2: Инициализация Control Plane (только на `kube-master`)

Выполните следующие действия ТОЛЬКО НА МАШИНЕ, КОТОРАЯ БУДЕТ CONTROL PLANE (kube-master):

  1. Инициализируйте Control Plane с помощью kubeadm init: * Выберите IP-адрес интерфейса, который будут использовать worker nodes для связи с master (замените <MASTER_IP> на фактический IP-адрес kube-master). * Укажите сетевой плагин (здесь используется Calico, но вы можете выбрать другой). bash sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --control-plane-endpoint="<MASTER_IP>:6443" * Запомните команду kubeadm join ..., которая будет выведена в конце выполнения этой команды. Она понадобится для присоединения worker nodes к кластеру. Пример команды: kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>
  2. Настройте kubectl для работы с кластером (выполните на kube-master): bash mkdir -p $HOME/.kube sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
  3. Установите сетевой плагин (Calico в данном примере): bash kubectl apply -f [https://docs.projectcalico.org/manifests/calico.yaml](https://docs.projectcalico.org/manifests/calico.yaml) * Дождитесь, пока все Pod'ы в пространстве имен kube-system перейдут в состояние Running. Это может занять несколько минут: bash kubectl get pods -n kube-system -w

Шаг 3: Присоединение Worker Nodes (на `kube-worker-1` и `kube-worker-2`)

Выполните следующую команду НА КАЖДОЙ МАШИНЕ, КОТОРАЯ БУДЕТ WORKER NODE (kube-worker-1, kube-worker-2):

  1. Используйте команду kubeadm join, скопированную на шаге 2: bash sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH> * Замените <MASTER_IP>, <TOKEN> и <HASH> на значения, полученные при инициализации Control Plane.

Шаг 4: Проверка кластера (на `kube-master`)

Выполните следующие команды ТОЛЬКО НА МАШИНЕ CONTROL PLANE (kube-master), чтобы убедиться, что кластер настроен правильно:

  1. Проверьте состояние узлов: bash kubectl get nodes Вы должны увидеть три узла (kube-master, kube-worker-1, kube-worker-2) в состоянии Ready.
  2. Проверьте состояние Pod'ов в системном пространстве имен: bash kubectl get pods -n kube-system Убедитесь, что основные компоненты Kubernetes и сетевой плагин (Calico) запущены и находятся в состоянии Running.

Дополнительные действия (рекомендуется):

Устранение неполадок:

Эта инструкция представляет собой базовый вариант развертывания кластера Kubernetes. Для production-окружений рекомендуется использовать более продвинутые инструменты и конфигурации.

DokuWiki Appliance - Powered by TurnKey Linux