CyVerse-Ansible.ansible_k3s

CyVerse Ansible k3s

Ta rola stworzy samodzielną instancję k3s lub klaster.

Wymagania

Jeśli używasz Dockera z k3s, to ta rola zależy od już zainstalowanego Dockera lub roli, która go dostarcza.

Ta rola ustawi zaporę (ufw) i domyślnie pozwoli na komunikację wszystkich węzłów w klastrze k3s.

Ta rola opiera się na twoich plikach hostów. Poniżej znajduje się przykładowy plik inwentarza z zdefiniowanymi k3s_masters, k3s_agents i k3s_cluster, co jest minimalną deklaracją.

Uwaga: W tej chwili obsługiwany jest tylko 1 master.

W formacie .ini

[k3s_masters]
  w.x.y.z

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

[k3s_cluster:children]
  k3s_masters
  k3s_agents

W formacie 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:

Zmienne Roli

Poniższa tabela zawiera opcjonalne zmienne ansible oraz domyślne wartości, jeśli nie są zdefiniowane.

Nazwa zmiennej Wartość domyślna, jeśli nie zdefiniowana Opis
K3S_DOCKER_ENABLE zależna od wersji włącza silnik dockera, jeśli nie ustawiona, będzie prawdziwa, chyba że wersja systemu to ubuntu2204 lub nowszy
K3S_GPU_ENABLE false włącza sterownik nvidii gpu
K3S_GPU_TIMESLICE_ENABLE false jeśli gpu jest włączone, ta opcja włączy dzielenie czasu
K3S_GPU_TIMESLICE_NUM 2 domyślne dzielenie czasu to dwa, jeśli K3S_GPU_TIMESLICE_ENABLE
K3S_NVIDIA_USE_GPU_OPERATOR true domyślnie używa operatora gpu nvidii (jeśli gpu włączone)
K3S_NVIDIA_GPU_OPERATOR_DRIVER false używa sterownika w kontenerze (zobacz https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_NVIDIA_GPU_OPERATOR_TOOLKIT false używa zestawu narzędzi w kontenerze (zobacz https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.html)
K3S_TRAEFIK_ENABLE false wyłącza traefik ingress
K3s_FLANNEL_BACKEND none jeśli ustawione, przekaże wartość do --flannel-backend=
K3S_CALICO_ENABLE (nie działa) false włącza calico
K3S_CLUSTER_TOKEN none jeśli ustawione, klaster zostanie zainicjowany do tego tokena, zamiast losowo generowanego
K3S_CLUSTER_CIDR none jeśli ustawione, cidr dla klastra np. 192.168.0.0/16
K3S_VERSION none jeśli ustawione, spróbuje ustawić wersję k3s
K3S_IS_MULTINODE false jeśli prawda, przeprowadzi dodatkowe przygotowania do hostów dla wielu węzłów (np. przekazywanie ip)
K3S_MASTER_INSTALL true reinstalacja węzła master
K3S_MASTER_IP none ustawia ip masters k3s na wypadek, gdyby ansible_default_ipv4 zwracał niepoprawną wartość
K3S_MASTER_PORT 6443 port węzła master
K3S_POSTGRESQL_ENABLE false włącza korzystanie z postgresql
K3S_POSTGRESQL_INSTALL false włącza instalację postgresql na pierwszym masterze k3s; K3S_POSTGRESQL_ENABLE musi być prawdą
K3S_POSTGRESQL_HOST 127.0.0.1 nazwa hosta lub ustawienie ip dla bazy danych postgresql, z konfiguracji mastera k3s
K3S_POSTGRESQL_PORT 5432 port dla bazy danych postgresql
K3S_POSTGRESQL_DB kubernetes nazwa bazy danych postgres
K3S_POSTGRESQL_USER k3suser nazwa użytkownika bazy danych K3S_POSTGRESQL_DB
K3S_POSTGRESQL_PASS losowo generowane hasło do użycia dla K3S_POSTGRESQL_USER do uzyskania dostępu do K3S_POSTGRESQL_DB; przechowywane w /opt/k3s po wygenerowaniu
K3S_FIREWALL_MANAGE false włącza zarządzanie zaporą przez tę rolę
K3S_FIREWALL_ADD_PORTS none To jest tablica słowników (zobacz przykładowy playbook); każdy element powinien mieć port, regułę, protokół i źródło
K3S_REGISTRIES_MIRRORS none Jeśli zdefiniowane, umieści wszystko pod "mirrors:" w /etc/rancher/k3s/registries.yaml; upewnij się, że zawarte w yaml kontenery mają "mirrors:"

Przykładowy Playbook

To jest przykładowy 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"

Informacje o autorze

Edwin Skidmore (edwin@cyverse.org)

O projekcie

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

Zainstaluj
ansible-galaxy install CyVerse-Ansible.ansible_k3s
Licencja
other
Pobrania
2.2k
Właściciel