Для инициализации кластера Kubernetes выполните действия на первом главном узле:
Запустите команду инициализации от имени пользователя root:
kubeadm init
Завершите сессию пользователя root:
exit
Войдите под другим пользователем и раздайте ему все привилегии для управления кластером:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Получите команду подключения к кластеру. Для этого выполните команду от имени выбранного пользователя:
kubeadm create token --print-join-command
Пример ответа:
kubeadm join {<IP-адрес
главного узла>}:6443 --token XXXXXXXXXXXX \
--discovery-token-ca-cert-hash sha256:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Важно. Выполните полученную команду на каждом узле кластера от имени пользователя root.
После выполнения действий на главном узле будет произведена инициализация кластера Kubernetes. Далее настройте внутрикластерную сеть.
Настройка внутрикластерной сети (CNI) выполняется с помощью утилиты cilium на первом главном узле.
Для настройки внутрикластерной сети:
Получите список узлов кластера:
kubectl get nodes
После чего будет получен список узлов кластера со статусом «NotReady». Статус зависит от настроек внутрикластерной сети.
Добавьте в Helm-репозиторий ссылку на утилиту cilium и установите её:
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.15.4 --namespace kube-system
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}
Проверьте статус внутрикластерной сети:
cilium status --wait
Узлы кластера должны изменить свой статус на «Ready».
Запустите тест внутрикластерной сети и дождитесь его выполнения:
cilium connectivity test
Пример ответа:
69/69 tests successful (0 warnings)
Если ошибок и предупреждений нет, значит сеть и кластер настроены корректно.
Повторно получите список узлов кластера:
kubectl get nodes
После чего будет получен список узлов кластера со статусом «Ready».
Далее перейдите к настройке внешней сети Kubernetes.
См. также:
Подготовка и развёртывание отказоустойчивого кластера на основе Kubernetes | Настройка внешней сети Kubernetes