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

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

  1. Запустите команду инициализации от имени пользователя root:

kubeadm init

  1. Завершите сессию пользователя root:

exit

  1. Войдите под другим пользователем и раздайте ему все привилегии для управления кластером:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

  1. Получите команду подключения к кластеру. Для этого выполните команду от имени выбранного пользователя:

kubeadm create token --print-join-command

Пример ответа:

kubeadm join {<IP-адрес главного узла>}:6443 --token XXXXXXXXXXXX \
   --discovery-token-ca-cert-hash sha256:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

Важно. Выполните полученную команду на каждом узле кластера от имени пользователя root.

После выполнения действий на главном узле будет произведена инициализация кластера Kubernetes. Далее настройте внутрикластерную сеть.

Настройка внутрикластерной сети

Настройка внутрикластерной сети (CNI) выполняется с помощью утилиты cilium на первом главном узле.

Для настройки внутрикластерной сети:

  1. Получите список узлов кластера:

kubectl get nodes

После чего будет получен список узлов кластера со статусом «NotReady». Статус зависит от настроек внутрикластерной сети.

  1. Добавьте в Helm-репозиторий ссылку на утилиту cilium и установите её:

helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.15.4 --namespace kube-system

  1. Установите клиент cilium:

CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
CLI_ARCH=amd64
if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}

  1. Проверьте статус внутрикластерной сети:

cilium status --wait

Узлы кластера должны изменить свой статус на «Ready».

  1. Запустите тест внутрикластерной сети и дождитесь его выполнения:

cilium connectivity test

Пример ответа:

69/69 tests successful (0 warnings)

Если ошибок и предупреждений нет, значит сеть и кластер настроены корректно.

  1. Повторно получите список узлов кластера:

kubectl get nodes

После чего будет получен список узлов кластера со статусом «Ready».

Далее перейдите к настройке внешней сети Kubernetes.

См. также:

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