Mit Kubermatic Virtualization 1.1 wurde ein deklarativer Installer eingeführt: ein einziger kubermatic-virtualization apply -f cluster.yaml Befehl, der die Installation, das Upgrade und die Selbstheilung übernimmt. Beim ersten Mal können Sie ihn interaktiv mithilfe eines Assistenten ausführen und anschließend das Ergebnis überprüfen cluster.yaml in die Versionskontrolle einpflegen und bei jeder nachfolgenden Änderung aus dem CI abgleichen. Dieses Tutorial behandelt beide Vorgehensweisen.
Was wird installiert?
Kubermatic Virtualization ist eine Kombination aus bekannten Open-Source-Komponenten sowie den eigenen Controllern und der Benutzeroberfläche von Kubermatic. Der Installer koordiniert all dies über eine einzige Konfigurationsdatei:
- KubeOne richtet den Bare-Metal-Kubernetes-Cluster (den „Infrastruktur-Cluster“) ein und aktualisiert ihn
- Im Vorfeld führt KubeVirt die VM-Workloads auf diesem Cluster aus
- Kube-OVN stellt das SDN bereit – VPCs, Subnetze, NAT-Gateways und Elastic IPs als CRDs
- Der Containerized Data Importer (CDI) verwaltet den Import von Cloud-Images in PVCs
- Longhorn wird als Standard storage ausgeliefert; MetalLB als Standard-Lastverteiler
- Kyverno setzt eine Reihe grundlegender Sicherheitsrichtlinien für virtuelle Maschinen durch
- Die Kubermatic-Virtualisierungs-Steuerungsebene (API-Server, Controller, Web-Benutzeroberfläche)
Sie müssen diese Komponenten nicht einzeln installieren. Das Installationsprogramm koordiniert die Installation des gesamten Stacks von Ihrem cluster.yaml.
Erstelle eine Starter-Datei „cluster.yaml“
Das Installationsprogramm enthält eine Konfiguration drucken Unterbefehl, der eine Vorlage ausgibt, die Sie bearbeiten können:
kubermatic-virtualization config print \
--enable-metallb \
--enable-longhorn \
--control-plane-hosts 3 \
--worker-hosts 3 \
> cluster.yaml
Öffnen cluster.yaml und tragen Sie Folgendes ein:
infrastructure.controlPlaneHosts:— IP-Adressen und SSH-Daten für die drei Knoten der Steuerungsebeneinfrastructure.workerHosts:— IP-Adressen und SSH-Daten für Worker-Knotennetworking.cni.kubeOVN:— VPC-Subnetzbereiche (die Standardwerte sind für ein Labor in der Regel ausreichend)Autor:— Lass es vorerst so, wie es ist; du wirst später im Rahmen von OIDC darauf zurückkommenDashboard:— siehe Anleitung zum Dashboard für den Block
Die CLI akzeptiert für die Host-Schritte SSH-Schlüsseldateien oder durch einen Agenten weitergeleitete Sitzungen. Sobald die Datei ausgefüllt ist, verfügen Sie über ein einziges Artefakt, das Ihren gesamten Cluster beschreibt.
Vor dem Flug
Das Installationsprogramm führt eine Vorabprüfung verschiedener Punkte durch und weigert sich, die Installation durchzuführen, falls einer davon fehlt:
KUBEV_USERNAMEundKUBEV_PASSWORTset (oder ein Inline-imagePullSecret:incluster.yaml) – wird verwendet, um die gesperrten Bilder von quay.io abzurufen- Alle aufgeführten Hosts, die über SSH von dem Rechner aus erreichbar sind, auf dem das Installationsprogramm ausgeführt wird
- Die Hosts erfüllen die Mindestanforderungen an die Hardware (CPU / RAM / Festplatte) und verfügen über eine in der Firmware aktivierte Hardware-Virtualisierung
- Die angeforderte Kubernetes-Version wird von KubeOne für die von Ihnen angegebenen Anbieter unterstützt
echo "${KUBEV_USERNAME:-MISSING}"
test -n "$KUBEV_PASSWORD" && echo "set" || echo "MISSING"
kubermatic-virtualization apply -f cluster.yaml --dry-run
--Testlauf Führen Sie die Vorflugkontrolle durch, ohne Änderungen vorzunehmen. Beheben Sie alle Mängel, bevor Sie fortfahren.
Bewerben
kubermatic-virtualization apply -f cluster.yaml
Die erste Installation auf einem neuen Cluster dauert 20 bis 40 Minuten. Das Installationsprogramm:
- Stellt den Bare-Metal-Kubernetes-Cluster über KubeOne bereit
- Installiert Kube-OVN als CNI
- Installiert Longhorn und MetalLB
- Installiert KubeVirt + CDI
- Installiert die Kubermatic-Virtualisierungs-Control-Plane (sowie das Dashboard, falls Sie dieses aktiviert haben)
- Wendet die Standardrichtlinien von Kyverno an
Sie können den Fortschritt in der Ausgabe des Installationsprogramms und in kubectl Sobald die API erreichbar ist:
export KUBECONFIG=$(pwd)/kubeconfig # Das Installationsprogramm legt diese Datei im Arbeitsverzeichnis ab
kubectl get nodes
kubectl get pods -A | grep -E "kubevirt|kube-ovn|longhorn|kubermatic-virtualization"
GitOps ab hier
Sobald der Cluster läuft und cluster.yaml Da sie die vollständige Konfiguration widerspiegelt, ist diese Datei die einzige verlässliche Informationsquelle. Nachfolgende Änderungen – das Aktualisieren von Kubernetes, das Austauschen der IP-Bereiche des CNI, das Aktivieren des Dashboards, das Hinzufügen von Worker-Knoten – erfolgen alle durch Bearbeiten cluster.yaml und erneut ausführen anwenden:
kubermatic-virtualization apply -f cluster.yaml
Das Installationsprogramm ist deklarativ und selbstheilend. Bei einer erneuten Ausführung werden nur die Änderungen erfasst und abgeglichen. Genau dieses Prinzip macht das Installationsprogramm CI-freundlich: check cluster.yaml in ein Repo einfügen, ausführen anwenden Bei jedem zusammengeführten PR soll das Installationsprogramm den Cluster in den festgelegten Zustand überführen.
Eine pragmatische Aufteilung: der Assistent für die Erstinstallation auf einem neuen Cluster, danach GitOps. Der Assistent dient dazu, die richtige Konfiguration für cluster.yamlSobald du es hast, brauchst du den Assistenten nicht mehr.
Wie geht es weiter?
Ein aktiver Cluster bildet die Grundlage. Das nächste Tutorial dieser Reihe befasst sich mit der Aktivierung des Kubermatic Virtualization Dashboards – der in Version 1.1 eingeführten clusterbezogenen Weboberfläche – einschließlich der drei Authentifizierungsmodi (None / Basic / OIDC). Danach übernimmt die KubeVirt-Einführungsreihe die Behandlung der VM-Workload-Muster: Erstellen von VMs, Lebenszyklus, Netzwerk und persistenter storage.
