Предварительная настройка кластера Kubernetes

Для развёртывания отказоустойчивого кластера на основе Kubernetes рассмотрим пример предварительной настройки, в которой используется кластер *.k8s.internal и компьютеры с соответствующими IP-адресами:

Важно. Во избежание ошибки split-brain количество главных узлов должно быть нечётным.

Для предварительной настройки кластера в ОС Astra Linux выполните действия на каждом узле кластера:

  1. Установите дополнительные пакеты apt-transport-https, curl, ca-certificates, gnupg-agent, software-properties-common, open-iscsi:

sudo apt-get update
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
open-iscsi \
software-properties-common

  1. Добавьте ключ репозитория Docker:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" | sudo tee /etc/apt/sources.list.d/docker.list

  1. Установите платформу контейнеризации Containerd:

sudo apt-get update
sudo apt-get install containerd.io -y

  1. Установите репозиторий Kubernetes:

mkdir /etc/apt/keyrings/
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

  1. Скачайте и установите пакет conntrack для kubeadm:

wget http://ftp.de.debian.org/debian/pool/main/c/conntrack-tools/conntrack_1.4.5-2_amd64.deb
dpkg -i conntrack_1.4.5-2_amd64.deb

  1. Обновите список репозиториев и установите компоненты Kubernetes:

apt-get update
apt-get install -y kubelet kubeadm kubectl

  1. Включите плагин cri на сервисе контейнеризации (daemon). Для этого закомментируйте строку в файле /etc/containerd/config.toml:

#disabled_plugins = ["cri"]

  1. Разрешите проброс IPv4-пакетов на ядре:

echo '1' > /proc/sys/net/ipv4/ip_forward
sudo sh -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'

  1. Добавьте дополнительные модули для iptables:

modprobe br_netfilter
sudo sh -c 'echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf'

После выполнения действий предварительная настройка кластера будет выполнена.

Далее установите пакетный менеджер Helm на каждом главном узле и перейдите к инициализации кластера Kubernetes.

Установка пакетного менеджера Helm

Для установки пакетного менеджера Helm на каждом главном узле:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

Примечание. Используйте пакетный менеджер Helm версии 3.5 и выше.

См. также:

Подготовка и развёртывание отказоустойчивого кластера на основе Kubernetes | Инициализация кластера Kubernetes