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