CyVerse-Ansible.ansible_k3s

CyVerse Ansible k3s

Diese Rolle erstellt einen k3s Standalone oder Cluster.

Anforderungen

Wenn Docker mit k3s verwendet wird, muss Docker bereits installiert sein oder eine Rolle bereitgestellt werden, die es zur Verfügung stellt.

Diese Rolle richtet eine Firewall (ufw) ein und erlaubt standardmäßig, dass alle Knoten innerhalb des k3s Clusters miteinander kommunizieren.

Diese Rolle geht von Annahmen in deinen Host-Dateien aus. Im Folgenden ist ein Beispiel für eine Inventardatei mit k3s_masters, k3s_agents und k3s_cluster angegeben, was die minimale Deklaration darstellt.

Hinweis: Aktuell wird nur 1 Master unterstützt.

Im .ini-Format

[k3s_masters]
  w.x.y.z

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

[k3s_cluster:children]
  k3s_masters
  k3s_agents

Im yaml-Format

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:

Rollenvariablen

Die folgende Tabelle listet optionale Ansible-Variablen sowie die Standardwerte auf, falls sie nicht definiert sind.

Variablenname Standardwert, wenn nicht definiert Beschreibung
K3S_DOCKER_ENABLE versionsabhängig aktiviert die Docker-Engine, wenn nicht gesetzt, ist es wahr, es sei denn, die OS-Version ist ubuntu2204 oder neuer
K3S_GPU_ENABLE falsch aktiviert den Nvidia GPU-Treiber
K3S_GPU_TIMESLICE_ENABLE falsch wenn GPU aktiviert ist, aktiviert diese Einstellung Time-Slicing
K3S_GPU_TIMESLICE_NUM 2 Standard-Zeit-Slices sind zwei, wenn K3S_GPU_TIMESLICE_ENABLE
K3S_NVIDIA_USE_GPU_OPERATOR wahr standardmäßig wird der Nvidia-GPU-Operator verwendet (wenn GPU aktiviert)
K3S_NVIDIA_GPU_OPERATOR_DRIVER falsch Treiber im Container verwenden (siehe https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_NVIDIA_GPU_OPERATOR_TOOLKIT falsch Toolkit im Container verwenden (siehe https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_TRAEFIK_ENABLE falsch deaktiviert Traefik Ingress
K3s_FLANNEL_BACKEND none wenn gesetzt, wird der Wert an --flannel-backend= übergeben
K3S_CALICO_ENABLE (nicht working) falsch aktiviert Calico
K3S_CLUSTER_TOKEN none wenn gesetzt, wird der Cluster auf dieses Token initialisiert, anstatt zufällig erzeugt zu werden
K3S_CLUSTER_CIDR none wenn gesetzt, CIDR für den Cluster z.B. 192.168.0.0/16
K3S_VERSION none wenn gesetzt, wird versucht, die k3s-Version festzulegen
K3S_IS_MULTINODE falsch wenn wahr, wird eine zusätzliche Einrichtung durchgeführt, um Hosts für Multiknoten vorzubereiten (wie IP-Weiterleitung)
K3S_MASTER_INSTALL wahr Master-Knoten neu installieren
K3S_MASTER_IP none setzt die k3s Masters IP, wenn ansible_default_ipv4 einen falschen Wert erhält
K3S_MASTER_PORT 6443 Port des Master-Knotens
K3S_POSTGRESQL_ENABLE falsch aktiviert die Nutzung von PostgreSQL
K3S_POSTGRESQL_INSTALL falsch aktiviert die Installation von PostgreSQL auf dem ersten k3s Master; K3S_POSTGRESQL_ENABLE muss wahr sein
K3S_POSTGRESQL_HOST 127.0.0.1 Hostname oder IP-Einstellung für die PostgreSQL-Datenbank, aus der k3s Master-Konfiguration
K3S_POSTGRESQL_PORT 5432 Port für die PostgreSQL-Datenbank
K3S_POSTGRESQL_DB kubernetes PostgreSQL-Datenbankname
K3S_POSTGRESQL_USER k3suser Benutzername für die K3S_POSTGRESQL_DB
K3S_POSTGRESQL_PASS zufällig generiert Passwort für K3S_POSTGRESQL_USER zum Zugriff auf K3S_POSTGRESQL_DB; gespeichert in /opt/k3s nach der Generierung
K3S_FIREWALL_MANAGE falsch aktiviert die Firewall-Verwaltung durch diese Rolle
K3S_FIREWALL_ADD_PORTS none Dies ist ein Array von Dictionaries (siehe Beispiel-Playbook für Beispiele); jedes Element sollte Port, Regel, Proto und Src haben
K3S_REGISTRIES_MIRRORS none Wenn definiert, wird alles unter "mirrors:" in /etc/rancher/k3s/registries.yaml platziert; stelle sicher, dass die enthaltenen YAML-Container "mirrors:" haben

Beispiel-Playbook

Dies ist ein Beispiel-Playbook:

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

Autoreninformationen

Edwin Skidmore (edwin@cyverse.org)

Über das Projekt

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

Installieren
ansible-galaxy install CyVerse-Ansible.ansible_k3s
GitHub Repository
Lizenz
other
Downloads
2.2k