BigKAA / 00-kube-ansible

Playbook для развертывания тестового кластер kubernetes
GNU General Public License v3.0
21 stars 20 forks source link

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

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

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

Установка 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 :

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

ansible-playbook reset.yaml

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

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

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

ansible-playbook upgrade.yaml

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

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