microk8s
Ansible Роль: microk8s
Роль для загрузки и установки microk8s — самой маленькой, простой и чистой версии K8s для продуктивной среды.
Требования
- Ansible >= 2.7
- Линукс дистрибутив
- Семейство Debian
- Ubuntu
- Xenial (16.04)
- Bionic (18.04)
- Focal (20.04) (не тестировалось)
- Jammy (22.04) (не тестировалось)
- Ubuntu
- Arch Linux (не тестировалось)
- Семейство Debian
Лицензия
MIT
Использование
Переменные роли
Некоторые переменные, доступные в этой роли, перечислены здесь. Полный набор определен в [defaults/main.yml](defaults/main.yml)
.
microk8s_version
: Версия для использования, по умолчанию1.27/stable
.microk8s_plugins
: Включить/отключить различные плагины. Строка будет передана какarg
при включении аддона с использованиемname:arg
.microk8s_enable_HA
: Включить/отключить высокую доступность.microk8s_group_HA
: Группа хостов, члены которой будут формировать HA кластер.microk8s_group_WORKERS
: Группа хостов, члены которой будут действовать только как узлы-работники (компоненты управляющей панели не работают здесь).microk8s_csr_template
: Если задана, будет использоваться пользовательская CSR для генерации сертификатов.
Основной плейбук
- hosts: servers
roles:
- role: istvano.microk8s
vars:
microk8s_plugins:
dns: "1.1.1.1"
istio: true
ingress: true
Примечание: При переопределении списка плагинов рекомендуется скопировать весь список плагинов из defaults/main.yml
, так как некоторые задачи Ansible ссылаются на них (например, helm3
), и развертывание может закончиться неудачей.
Шаблон пользовательского запроса сертификата
Может быть полезно настроить шаблон запроса сертификата, используемый MicroK8s для генерации сертификатов кластера. Например, дополнительные SAN могут быть добавлены к сертификатам, чтобы сертификаты MicroK8s были действительными при обращении к ним извне кластера, например, через обратный прокси.
Для генерации шаблона CSR, вероятно, проще всего использовать роль без шаблона, а затем скопировать CSR из /var/snap/microk8s/current/certs/csr.conf.template
в директорию шаблонов вашего плейбука, внести изменения и установить переменную microk8s_csr_template
соответствующим образом, после чего заново запустить плейбук.
Добавление узлов только для рабочих задач (только 1.23+)
Можно настроить дополнительные узлы для работы только в вашем кластере microk8s. Это возможно, настроив группу хостов ansible microk8s_WORKERS
(имя группы настраивается через microk8s_group_WORKERS
). Каждый хост, указанный в группе, будет выполнять microk8s join .... --worker
, дополнительную информацию можно найти здесь: microk8s-clustering.
Тестирование
Использование обертки Molecule и системного Python
./moleculew lint
./moleculew create
./moleculew list
./moleculew check
./moleculew test
Использование виртуального окружения Python
- Настройка виртуального окружения
$ python3 -m venv venv
- Активация окружения
$ . venv/bin/activate
- Установка Molecule с опциями линтинга и Docker
$ pip install 'molecule[lint,docker]'
- Установка актуального пакета Ansible, если необходимо
$ pip install ansible
- Запуск команд для тестирования:
molecule lint
molecule create
molecule list
molecule check
molecule test
ansible-galaxy install istvano/ansible_role_microk8s