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
Владелец