istvano.microk8s
Ansible Rolle: microk8s
Rolle zum Herunterladen und Installieren von microk8s, dem kleinsten, einfachsten und reinem Produktions-K8s.
Anforderungen
- Ansible >= 2.7
- Linux-Distribution
- Debian-Familie
- Ubuntu
- Xenial (16.04)
- Bionic (18.04)
- Focal (20.04) (ungetestet)
- Jammy (22.04) (ungetestet)
- Ubuntu
- Arch Linux (ungetestet)
- Debian-Familie
Lizenz
MIT
Verwendung
Rollenvariablen
Einige in dieser Rolle verfügbare Variablen sind hier aufgelistet. Das vollständige Set ist in [defaults/main.yml](defaults/main.yml)
definiert.
microk8s_version
: Zu verwendende Version, standardmäßig1.27/stable
.microk8s_plugins
: Verschiedene Plugins aktivieren/deaktivieren. Ein String wird alsarg
übergeben, wenn ein Addon mitname:arg
aktiviert wird.microk8s_enable_HA
: Hochverfügbarkeit aktivieren/deaktivieren.microk8s_group_HA
: Hostgruppe, deren Mitglieder ein HA-Cluster bilden.microk8s_group_WORKERS
: Hostgruppe, deren Mitglieder nur als Worker-Knoten fungieren (keine Control-Plane-Komponenten laufen hier).microk8s_csr_template
: Wenn definiert, wird eine benutzerdefinierte CSR verwendet, um Zertifikate zu generieren.
Grundlegendes Playbook
- hosts: servers
roles:
- role: istvano.microk8s
vars:
microk8s_plugins:
dns: "1.1.1.1"
istio: true
ingress: true
Hinweis: Beim Überschreiben der Plugins-Liste wird empfohlen, die gesamte Liste der Plugins aus defaults/main.yml
zu kopieren und einzufügen, da einige Ansible-Aufgaben auf sie verweisen (z.B. helm3
) und die Bereitstellung möglicherweise fehlschlägt.
Benutzerdefinierte Zertifikatsanforderungsvorlage
Es kann nützlich sein, die Vorlage für die Zertifikatsanforderung anzupassen, die von MicroK8s zur Erstellung von Clusterzertifikaten verwendet wird. Zum Beispiel können zusätzliche SANs zu den Zertifikaten hinzugefügt werden, sodass die MicroK8s-Zertifikate auch von außerhalb des Clusters, wie über einen Reverse-Proxy, überprüft werden.
Um eine CSR-Vorlage zu erstellen, ist es am einfachsten, die Rolle ohne eine Vorlage zu verwenden und dann die CSR in /var/snap/microk8s/current/certs/csr.conf.template
in das Vorlagenverzeichnis deines Playbooks zu kopieren, die Änderungen vorzunehmen und die Variable microk8s_csr_template
entsprechend festzulegen und das Playbook erneut auszuführen.
Hinzufügen von nur Worker-Knoten (nur 1.23+)
Es ist möglich, zusätzliche Knoten zu konfigurieren, die innerhalb deines microk8s-Clusters nur als Worker fungieren. Dies kann durch Konfigurieren der Ansible-Hostgruppe microk8s_WORKERS
erfolgen (der Name der Gruppe kann über microk8s_group_WORKERS
konfiguriert werden). Jeder in der Hostgruppe aufgelistete Host wird im Wesentlichen microk8s join .... --worker
ausführen. Weitere Informationen sind hier zu finden: microk8s-clustering.
Testen
Verwendung von Molecule-Wrapper und System-Python
./moleculew lint
./moleculew create
./moleculew list
./moleculew check
./moleculew test
Verwendung einer Python-virtuellen Umgebung
- Virtuelle Umgebung einrichten
$ python3 -m venv venv
- Umgebung aktivieren
$ . venv/bin/activate
- Molecule mit Lint- und Docker-Optionen installieren
$ pip install 'molecule[lint,docker]'
- Bei Bedarf das aktuelle Ansible-Paket installieren
$ pip install ansible
- Führe die Testbefehle aus:
molecule lint
molecule create
molecule list
molecule check
molecule test
ansible-galaxy install istvano.microk8s