Skip to content

Playbook для развертывания тестового кластер kubernetes

License

Notifications You must be signed in to change notification settings

BigKAA/00-kube-ansible

Repository files navigation

Ansible playbook для установки тестового кластера k8s

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

k8s ver Distributive CRI Notes
1.31 Ubuntu 22.04.4 LTS CRI-O 1.31 Не стартует harbor. Не монтируется emptyDir.
1.3x Ubuntu 22.04.4 LTS containerd 1.7.12 С последним обновление должен работать. На проверке
1.30 Rocky Linux 9.4 containerd 1.7.21 OK
1.31 Rocky Linux 8.10 CRI-O 1.31 Не стартует harbor. Не монтируется emptyDir.
1.31 Rocky Linux 8.10 containerd 1.6.32 OK Приложения пока не тестил
1.30 Rocky Linux 8.10 containerd 1.6.32 OK
1.31 Debian 12 containerd.io 1.7.21 Кластер стартует. Не работает metallb.
1.30 Debian 12 containerd.io 1.7.21 Ok

Остальные дистрибутивы проверю, когда до них руки дойдут.

Поддерживает:

  • Kubernetes v1.31.
  • Установку одной или несколько control nodes.
  • HA доступ к API kubernetes.
  • CRI-O.
  • calico.
  • В KubeProxyConfiguration установлены параметры для работы Metallb.
  • nodelocaldns - кеширующий DNS сервер на каждой ноде кластера.

Установка ansible

Так получилось, что у меня в WSL2 стоит Ubuntu:

python3 -m venv venv
. ~/venv/bin/activate
pip3 install "ansible-core<2.17"

Генерируем ssh ключ:

ssh-keygen

Копируем ключики в виртуальные машины из hosts.yaml:

ssh-copy-id root@control1.kryukov.local
ssh-copy-id root@control2.kryukov.local
ssh-copy-id root@control3.kryukov.local
ssh-copy-id root@worker1.kryukov.local
ssh-copy-id root@worker2.kryukov.local
ssh-copy-id root@worker3.kryukov.local

Конфигурационные параметры

Установка

k8s с одной control node

В инвентори в группе k8s_masters необходимо указать только один хост.

ansible-playbook install-cluster.yaml

k8s с несколькими control nodes

В инвентори в группе k8s_masters необходимо указать нечётное количество control nodes.

ansible-playbook install-cluster.yaml

k8s c HA

Используются haproxy и keepalived.

ha cluster

В конфигурационном файле определите параметры доступа к API :

  • ha_cluster_virtual_ip - виртуальный IP адрес.
  • ha_cluster_virtual_port - порт. Не должен быть равен 6443.

Удалить кластер

ansible-playbook reset.yaml

Внимание!!! Скрипт удаляет все нестандартные цепочки и чистит все стандартные цепочки.

Апдейт кластера

Изменяете версию кластера в group_vars\k8s_cluster и запускаете апдейт.

ansible-playbook upgrade.yaml

Сервисные функции

Сервисные функции находятся в директории services

About

Playbook для развертывания тестового кластер kubernetes

Resources

License

Stars

Watchers

Forks

Packages

No packages published