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