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)
    • Arch Linux (ungetestet)

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äßig 1.27/stable.
  • microk8s_plugins: Verschiedene Plugins aktivieren/deaktivieren. Ein String wird als arg übergeben, wenn ein Addon mit name: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
Über das Projekt

Ansible role for installing and set-up microk8s.

Installieren
ansible-galaxy install istvano.microk8s
Lizenz
mit
Downloads
31.6k
Besitzer