CyVerse-Ansible.ansible_k3s
CyVerse Ansible k3s
Este rol creará un k3s independiente o un clúster.
Requisitos
Si se utiliza Docker con k3s, este rol dependerá de que Docker ya esté instalado o de un rol que lo proporcione.
Este rol configurará un firewall (ufw) y, por defecto, permitirá que todos los nodos dentro del clúster k3s se comuniquen entre sí.
Este rol hace suposiciones en sus archivos de hosts. A continuación se muestra un ejemplo de archivo de inventario con k3s_masters, k3s_agents y k3s_cluster definidos, que es la declaración mínima.
Nota: En este momento, solo se admite 1 maestro.
En formato .ini
[k3s_masters]
w.x.y.z
[k3s_agents]
a.b.c.d
e.f.g.h
[k3s_cluster:children]
k3s_masters
k3s_agents
En formato 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:
Variables del Rol
La siguiente tabla lista variables opcionales de ansible junto con los valores por defecto si no están definidas.
Nombre de la Variable | Valor por defecto si no está definido | Descripción |
---|---|---|
K3S_DOCKER_ENABLE | version_dependent | activa el motor de docker; si no se establece, será verdadero a menos que la versión del sistema operativo sea ubuntu2204 o más reciente |
K3S_GPU_ENABLE | false | activa el controlador de gpu nvidia |
K3S_GPU_TIMESLICE_ENABLE | false | si se habilita la gpu, esta configuración permitirá la división del tiempo |
K3S_GPU_TIMESLICE_NUM | 2 | el valor por defecto para la división del tiempo es dos, si K3S_GPU_TIMESLICE_ENABLE |
K3S_NVIDIA_USE_GPU_OPERATOR | true | por defecto se usa el operador de gpu de nvidia (si la gpu está habilitada) |
K3S_NVIDIA_GPU_OPERATOR_DRIVER | false | usa el controlador en el contenedor (ver https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html) |
K3S_NVIDIA_GPU_OPERATOR_TOOLKIT | false | usa el toolkit en el contenedor (ver https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html) |
K3S_TRAEFIK_ENABLE | false | desactiva el ingreso traefik |
K3s_FLANNEL_BACKEND | none | si se establece, pasará el valor a --flannel-backend= |
K3S_CALICO_ENABLE (no funciona) | false | habilita calico |
K3S_CLUSTER_TOKEN | none | si se establece, el clúster se inicializará con este token, en lugar de uno generado aleatoriamente |
K3S_CLUSTER_CIDR | none | si se establece, CIDR para el clúster por ejemplo 192.168.0.0/16 |
K3S_VERSION | none | si se establece, intentará configurar la versión de k3s |
K3S_IS_MULTINODE | false | si es verdadero, realizará una configuración adicional para preparar los hosts para multinodos (como el reenvío de IP) |
K3S_MASTER_INSTALL | true | reinstalar nodo(s) maestro(s) |
K3S_MASTER_IP | none | establece la IP de los maestros de k3s cuando ansible_default_ipv4 obtiene un valor incorrecto |
K3S_MASTER_PORT | 6443 | puerto del nodo maestro |
K3S_POSTGRESQL_ENABLE | false | habilita el uso de postgresql |
K3S_POSTGRESQL_INSTALL | false | habilita la instalación de postgresql en el primer maestro de k3s; K3S_POSTGRESQL_ENABLE debe ser verdadero |
K3S_POSTGRESQL_HOST | 127.0.0.1 | nombre de host o configuración de ip para la base de datos postgresql, desde la configuración del maestro de k3s |
K3S_POSTGRESQL_PORT | 5432 | puerto para la base de datos postgresql |
K3S_POSTGRESQL_DB | kubernetes | nombre de la base de datos postgres |
K3S_POSTGRESQL_USER | k3suser | nombre de usuario de la base de datos K3S_POSTGRESQL_DB |
K3S_POSTGRESQL_PASS | generado aleatoriamente | contraseña para usar con K3S_POSTGRESQL_USER para acceder a K3S_POSTGRESQL_DB; almacenada en /opt/k3s después de ser generada |
K3S_FIREWALL_MANAGE | false | habilita la gestión del firewall a través de este rol |
K3S_FIREWALL_ADD_PORTS | none | Esta es una matriz de diccionarios (ver ejemplo de playbook para ejemplos); cada elemento debe tener port, rule, proto y src |
K3S_REGISTRIES_MIRRORS | none | Si se define, colocará todo bajo el "mirrors:" en /etc/rancher/k3s/registries.yaml; asegúrese de que el yaml incluido contenga "mirrors:" |
Ejemplo de Playbook
Este es un ejemplo de playbook:
- 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"
Información del Autor
Edwin Skidmore (edwin@cyverse.org)
Acerca del proyecto
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
Instalar
ansible-galaxy install CyVerse-Ansible.ansible_k3s
Licencia
other
Descargas
2.2k
Propietario