microk8s

Ansible Роль: microk8s

Роль для загрузки и установки microk8s — самой маленькой, простой и чистой версии K8s для продуктивной среды.

Требования

  • Ansible >= 2.7
  • Линукс дистрибутив
    • Семейство Debian
      • Ubuntu
        • Xenial (16.04)
        • Bionic (18.04)
        • Focal (20.04) (не тестировалось)
        • Jammy (22.04) (не тестировалось)
    • Arch Linux (не тестировалось)

Лицензия

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 role for installing and set-up microk8s.

Установить
ansible-galaxy install istvano/ansible_role_microk8s
Лицензия
mit
Загрузки
16766
Владелец