ansible_k3s

CyVerse Ansible k3s

Эта роль создаст независимый k3s или кластер.

Требования

Если вы используете Docker с k3s, то эта роль будет зависеть от уже установленного Docker или роли, которая его предоставляет.

Эта роль настроит брандмауэр (ufw) и по умолчанию позволит всем узлам в кластере k3s обмениваться данными друг с другом.

Эта роль делает предположения на основе ваших хост-файлов. Приведен пример файла инвентаризации с определенными k3s_masters, k3s_agents и k3s_cluster, что является минимальным объявлением.

Примечание: в настоящее время поддерживается только 1 мастер.

В формате .ini

[k3s_masters]
  w.x.y.z

[k3s_agents]
  a.b.c.d
  e.f.g.h

[k3s_cluster:children]
  k3s_masters
  k3s_agents

В формате yaml

all:
  hosts:
    k1:
      ansible_host: w.x.y.z
      ansible_user: root
    k2:
      ansible_host: a.b.c.d
      ansible_user: root
    k3:
      ansible_host: e.f.g.h
      ansible_user: root
  children:
    k3s_masters:
      hosts:
        k1:
    k3s_agents:
      hosts:
        k2:
        k3:
    k3s_cluster:
      children:
        k3s_masters:
        k3s_agents:

Переменные роли

Следующая таблица перечисляет необязательные переменные ansible с их значениями по умолчанию, если они не определены.

Имя переменной Значение по умолчанию, если не определено Описание
K3S_DOCKER_ENABLE version_dependent включает Docker, если не установлено, будет true, если версия ОС не ubuntu2204 или новее
K3S_GPU_ENABLE false включает драйвер nvidia gpu
K3S_GPU_TIMESLICE_ENABLE false если gpu включен, эта настройка включит тайм-срезы
K3S_GPU_TIMESLICE_NUM 2 по умолчанию два тайм-среза, если K3S_GPU_TIMESLICE_ENABLE
K3S_NVIDIA_USE_GPU_OPERATOR true по умолчанию использовать оператор gpu от nvidia (если gpu включен)
K3S_NVIDIA_GPU_OPERATOR_DRIVER false использовать драйвер в контейнере (см. https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_NVIDIA_GPU_OPERATOR_TOOLKIT false использовать набор инструментов в контейнере (см. https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_TRAEFIK_ENABLE false отключить traefik ingress
K3s_FLANNEL_BACKEND none если задано, передаст значение для --flannel-backend=
K3S_CALICO_ENABLE (не работает) false включить calico
K3S_CLUSTER_TOKEN none если задано, кластер будет инициализирован с этим токеном, а не случайно сгенерированным
K3S_CLUSTER_CIDR none если задано, cidr для кластера, например 192.168.0.0/16
K3S_VERSION none если задано, попытается установить версию k3s
K3S_IS_MULTINODE false если true, то будет выполнена дополнительная настройка для подготовки узлов к множественным узлам (например, переадресация ip)
K3S_MASTER_INSTALL true переустановить мастер-узел(ы)
K3S_MASTER_IP none устанавливает ip мастеров k3s для случаев, когда ansible_default_ipv4 получает неправильное значение
K3S_MASTER_PORT 6443 порт мастер-узла
K3S_POSTGRESQL_ENABLE false включает использование postgresql
K3S_POSTGRESQL_INSTALL false включает установку postgresql на первом мастере k3s; K3S_POSTGRESQL_ENABLE должен быть true
K3S_POSTGRESQL_HOST 127.0.0.1 имя хоста или настройка ip для базы данных postgresql, из конфигурации мастера k3s
K3S_POSTGRESQL_PORT 5432 порт для базы данных postgresql
K3S_POSTGRESQL_DB kubernetes название базы данных postgres
K3S_POSTGRESQL_USER k3suser имя пользователя базы данных для K3S_POSTGRESQL_DB
K3S_POSTGRESQL_PASS случайно сгенерированный пароль для K3S_POSTGRESQL_USER для доступа к K3S_POSTGRESQL_DB; хранится в /opt/k3s после генерации
K3S_FIREWALL_MANAGE false включает управление брандмауэром через эту роль
K3S_FIREWALL_ADD_PORTS none Это массив словарей (см. пример плейбука для примеров); каждый элемент должен содержать port, rule, proto и src
K3S_REGISTRIES_MIRRORS none Если определено, поместит все под "mirrors:" в /etc/rancher/k3s/registries.yaml; убедитесь, что включенный yaml содержит "mirrors:"

Пример плейбука

Это пример плейбука:

- hosts: k3s_cluster
  become: true
  roles:
    - k3s
  vars:
    K3S_FORCE_UNINSTALL: true
    K3S_POSTGRESQL_ENABLE: true
    K3S_POSTGRESQL_INSTALL: true
    K3S_FIREWALL_ADD_PORTS:
      - port: "8888"
        rule: "allow"
        proto: "tcp"
        src:   "1.2.3.0/24"
      - port: "443"
        rule: "deny"
        proto: "tcp"
        src:   "any"

Информация об авторе

Эдвин Скидмор (edwin@cyverse.org)

О проекте

This role will install a single or multi-cluster k3s, with the option of installing with postgresql. At this time, this is not suppose to be a comprehensive k3s, but rather a role sufficient for CyVerse's needs

Установить
ansible-galaxy install CyVerse-Ansible/ansible-k3s
Лицензия
other
Загрузки
2155
Владелец