Плейбук проверяется на наборе приложений.
| k8s ver | Distributive | CRI | Notes |
|---|---|---|---|
| 1.32 | Debian 12 | CRI-O 1.32 | Не стартует harbor. |
| 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.31.2 | Rocky Linux 9.4 | containerd 1.7.23-3.1 | 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 сервер на каждой ноде кластера.
Так получилось, что у меня в WSL2 стоит Ubuntu:
python3 -m venv venv
. ~/venv/bin/activate
pip3 install "ansible-core<2.17"Или используем контейнер с Ansible:
docker pull alpine/ansible:2.17.0
mkdir -p ~/.ansible
alias ansible-playbook="docker run -ti --rm -v ~/.ssh:/root/.ssh -v ~/.ansible:/root/.ansible -v $(pwd):/apps -w /apps alpine/ansible:2.17.0 ansible-playbook"
ansible-playbook --versionГенерируем 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_masters необходимо указать только один хост.
ansible-playbook install-cluster.yamlВ инвентори в группе k8s_masters необходимо указать нечётное количество
control nodes.
ansible-playbook install-cluster.yamlИспользуются haproxy и keepalived.
В конфигурационном файле определите параметры доступа к API :
ha_cluster_virtual_ip- виртуальный IP адрес.ha_cluster_virtual_port- порт. Не должен быть равен 6443.
ansible-playbook reset.yamlВнимание!!! Скрипт удаляет все нестандартные цепочки и чистит все стандартные цепочки.
Изменяете версию кластера в group_vars\k8s_cluster и запускаете апдейт.
ansible-playbook upgrade.yamlPlaybook с утилитами. Обычный набор утилит, который я ставлю в тестовых кластерах. Раньше ставил руками. Надоело, решил автоматизировать.
ansible-playbook services/06-utils.yamlСервисные функции находятся в директории services
