CyVerse-Ansible.ansible_k3s

CyVerse Ansible k3s

Ce rôle créera un k3s autonome ou en cluster.

Exigences

Si vous utilisez Docker avec k3s, ce rôle dépend de Docker déjà installé ou d'un rôle qui le fournit.

Ce rôle configurera un pare-feu (ufw) et, par défaut, permettra à tous les nœuds du cluster k3s de communiquer entre eux.

Ce rôle fait certaines hypothèses dans vos fichiers hôtes. Voici un exemple de fichier d'inventaire avec k3s_masters, k3s_agents et k3s_cluster définis, ce qui est la déclaration minimale.

Remarque : Actuellement, un seul master est pris en charge.

En format .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 format 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 du rôle

Le tableau suivant répertorie les variables Ansible optionnelles avec les valeurs par défaut si elles ne sont pas définies.

Nom de la variable Valeur par défaut si non définie Description
K3S_DOCKER_ENABLE version_dépendante active le moteur Docker si non défini, sera vrai à moins que la version du système d'exploitation soit ubuntu2204 ou plus récente
K3S_GPU_ENABLE faux active le pilote GPU NVIDIA
K3S_GPU_TIMESLICE_ENABLE faux si le GPU est activé, ce paramètre activera le découpage temporel
K3S_GPU_TIMESLICE_NUM 2 le découpage temporel par défaut est de deux, si K3S_GPU_TIMESLICE_ENABLE
K3S_NVIDIA_USE_GPU_OPERATOR vrai par défaut, utilise l'opérateur GPU de NVIDIA (si le GPU est activé)
K3S_NVIDIA_GPU_OPERATOR_DRIVER faux utilise le pilote dans le conteneur (voir https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_NVIDIA_GPU_OPERATOR_TOOLKIT faux utilise l'outil dans le conteneur (voir https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_TRAEFIK_ENABLE faux désactive le traefik ingress
K3s_FLANNEL_BACKEND aucun si défini, il transmet la valeur à --flannel-backend=
K3S_CALICO_ENABLE (non fonctionnel) faux active calico
K3S_CLUSTER_TOKEN aucun si défini, le cluster sera initialisé avec ce token, plutôt que généré aléatoirement
K3S_CLUSTER_CIDR aucun si défini, cidr pour le cluster, par ex. 192.168.0.0/16
K3S_VERSION aucun si défini, tentera de définir la version de k3s
K3S_IS_MULTINODE faux si vrai, alors effectuera une configuration supplémentaire pour préparer les hôtes aux multinodes (comme le transfert IP)
K3S_MASTER_INSTALL vrai réinstalle le(s) nœud(s) master
K3S_MASTER_IP aucun définit l'IP des masters k3s lorsque ansible_default_ipv4 obtient une valeur incorrecte
K3S_MASTER_PORT 6443 port du nœud master
K3S_POSTGRESQL_ENABLE faux active l'utilisation de postgresql
K3S_POSTGRESQL_INSTALL faux active l'installation de postgresql sur le premier master k3s ; K3S_POSTGRESQL_ENABLE doit être vrai
K3S_POSTGRESQL_HOST 127.0.0.1 nom d'hôte ou paramètre IP pour la base de données postgresql, depuis la configuration du master k3s
K3S_POSTGRESQL_PORT 5432 port pour la base de données postgresql
K3S_POSTGRESQL_DB kubernetes nom de la base de données postgres
K3S_POSTGRESQL_USER k3suser nom d'utilisateur de la base de données K3S_POSTGRESQL_DB
K3S_POSTGRESQL_PASS généré aléatoirement mot de passe à utiliser pour K3S_POSTGRESQL_USER pour accéder à K3S_POSTGRESQL_DB ; stocké dans /opt/k3s après avoir été généré
K3S_FIREWALL_MANAGE faux active la gestion du pare-feu via ce rôle
K3S_FIREWALL_ADD_PORTS aucun C'est un tableau de dictionnaires (voir l'exemple de playbook pour des exemples) ; chaque élément doit avoir port, règle, proto et src
K3S_REGISTRIES_MIRRORS aucun Si défini, place tout ce qui est sous "mirrors:" dans /etc/rancher/k3s/registries.yaml ; assurez-vous que les conteneurs yaml inclus contiennent "mirrors:"

Exemple de playbook

Ceci est un exemple 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"

Informations sur l'auteur

Edwin Skidmore (edwin@cyverse.org)

À propos du projet

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

Installer
ansible-galaxy install CyVerse-Ansible.ansible_k3s
Licence
other
Téléchargements
2.2k
Propriétaire