Kubernetes-Integration
VergeOS bietet native Kubernetes-Integration über einen CSI-Speichertreiber und einen Cloud Controller Manager und stellt Clustern auf VergeOS-VMs persistenten Speicher, Node-Lebenszyklusverwaltung und Load Balancer zur Verfügung.
Übersicht
VergeOS bietet native Kubernetes-Integration über einen CSI-Speichertreiber und einen Cloud Controller Manager (CCM). Diese Komponenten verbinden jeden Kubernetes-Cluster, der auf VergeOS-VMs läuft — unabhängig davon, ob er bereitgestellt wurde über Rancher, kubeadm oder eine andere Methode — mit der zugrunde liegenden VergeOS-Plattform.
Persistenter Speicher für Kubernetes-Pods über VergeOS vSAN
Node-Lebenszyklus und Load-Balancer-Integration
Voraussetzungen
Ein Kubernetes-Cluster, der auf VergeOS-VMs läuft (RKE2, K3s, kubeadm usw.)
Ein VergeOS-API-Schlüssel (in den Benutzereinstellungen generiert)
kubectlundhelmCLI-ToolsZugriff auf die kubeconfig des Clusters
CSI-Treiber
Der Container Storage Interface (CSI)-Treiber ermöglicht Kubernetes-Pods, VergeOS-Speicher als persistente Volumes anzufordern und einzubinden. Er delegiert Speicheroperationen direkt an die VergeOS-API und nutzt das vSAN für das, wofür es gebaut wurde — Deduplizierung, mehrstufige Platzierung und verteilte Redundanz.
Speicher-Backends
Der CSI-Treiber unterstützt zwei Backends, die beide von einer einzigen Go-Binärdatei bereitgestellt werden:
NAS
ReadWriteMany
EXT4-Volumes auf VergeOS-NAS-Diensten, über NFS bereitgestellt
Block
ReadWriteOnce
VM-Laufwerke, die per Hotplug über das vSAN an VergeOS-VMs angeschlossen werden
VM des Blockspeicher-Pools
Erstellen Sie für Blockspeicher eine leere VM in VergeOS mit dem Namen k8spool. Sie muss niemals booten — sie hält nur ungenutzte Blocklaufwerke. Die ID der VM wird bei der Installation an das Helm-Chart übergeben.
Installation
Der CSI-Treiber wird als Helm-Chart aus dem verge-io Helm-Repository verteilt und kann über die Helm-CLI oder über die Rancher Apps UI auf Downstream-Clustern installiert werden. Siehe Dokumentation und Ressourcen unten für Chart-Details, Helm-Werte und Konfigurationsoptionen.
Downstream-Cluster
Bei der Installation über die Rancher Apps UI muss das Helm-Repository auf dem Downstream-Clusterund nicht auf dem Rancher-Management-Cluster hinzugefügt werden. ClusterRepos werden nicht vom Management-Cluster übernommen.
Cloud Controller Manager
Der Cloud Controller Manager (CCM) ist die standardmäßige Kubernetes-Cloud-Provider-Schnittstelle für VergeOS. Er übernimmt das Node-Lebenszyklusmanagement und die Bereitstellung von Load Balancern.
Funktionen
Node-Verwaltung — Befüllt die Metadaten von Kubernetes-Nodes (Provider-ID, Instanztyp, interne IPs) aus VergeOS-VMs. Erkennt VM-Existenz und den Power-Status für das Node-Lebenszyklusmanagement.
Lastverteilung — Richtet VergeOS-VNet-NAT-/Übersetzungsregeln ein für
Typ: LoadBalancerServices. Weist IPs aus einem konfigurierbaren Pool zu und ordnet Service-Ports automatisch Node-Ports zu.
Wie der Node-Lebenszyklus funktioniert
Der CCM implementiert die Kubernetes- InstancesV2 Schnittstelle:
InstanceMetadata — Ordnet einen Kubernetes-Node einer VergeOS-VM zu (nach Provider-ID oder Namen) und gibt dann die Provider-ID zurück (
vergeos://<vm-id>), den Instanztyp (<cpu>cpu-<ram>mb), und die internen IP-Adressen aus den VM-NICsInstanceExists — Prüft, ob die zugrunde liegende VM in VergeOS noch existiert
InstanceShutdown — Meldet, ob die VM ausgeschaltet ist
Wie Lastverteilung funktioniert
Der CCM implementiert die Kubernetes- LoadBalancer Schnittstelle mithilfe von VergeOS-VNet-Regeln:
EnsureLoadBalancer — Weist eine IP aus dem Pool zu und erstellt dann pro Service-Port eine VNet-NAT-Regel. Die Regeln übersetzen
<allocated-ip>:<port>auf<node-ips>:<nodePort>. RuftApplyRulesauf, um sie zu aktivieren.UpdateLoadBalancer — Aktualisiert die Ziel-IPs bestehender Regeln, wenn sich Nodes ändern
EnsureLoadBalancerDeleted — Löscht alle VNet-Regeln für den Service und wendet die Änderung an
Installation
Der CCM wird zusammen mit dem CSI-Treiber als Helm-Chart verteilt. Installieren Sie ihn über die Helm-CLI oder über die Rancher Apps UI auf dem Downstream-Cluster. Siehe Dokumentation und Ressourcen unten für Chart-Details und Konfigurationsoptionen.
Cluster-Autoscaler
Der Kubernetes Cluster Autoscaler funktioniert mit über VergeOS bereitgestellten Clustern, die durch Rancherbereitzustellen sind. Er passt die Anzahl der Nodes in einem Pool automatisch anhand ausstehender Ressourcenanforderungen von Pods an — skaliert hoch, wenn Pods nicht geplant werden können, und skaliert herunter, wenn Nodes unterausgelastet sind. Siehe Dokumentation und Ressourcen unten für den Link zum Upstream-Projekt.
So funktioniert es
Der Autoscaler nutzt die API von Rancher, um Node-Pools zu verwalten:
Hochskalieren — Wenn Pods aufgrund unzureichender Ressourcen ausstehen, vergrößert der Autoscaler den Node-Pool. Rancher verwendet dann den Docker-Machine-Driver, um neue VergeOS-VMs bereitzustellen.
Herunterskalieren — Wenn Nodes über einen konfigurierbaren Zeitraum unterausgelastet sind, markiert der Autoscaler sie als unschedulable, leert sie und entfernt sie. Der Driver löscht die zugrunde liegenden VergeOS-VMs.
Ressourcenanforderungen
Der Autoscaler trifft Skalierungsentscheidungen auf Basis der Ressourcenanforderungen von Pods, nicht der tatsächlichen Nutzung. Stellen Sie sicher, dass Workloads requests in ihren Pod-Spezifikationen definieren, damit das Skalierungsverhalten korrekt ist.
Zusammenfassung
VergeOS bietet drei Kubernetes-Komponenten, die mit jedem Cluster zusammenarbeiten, der auf VergeOS-VMs läuft:
CSI-Treiber — persistente Volumes über VergeOS NAS (ReadWriteMany) und vSAN-Blockspeicher (ReadWriteOnce)
Cloud Controller Manager — Node-Lebenszyklusmanagement und
LoadBalancervon VergeOS-VNet-Regeln unterstützte ServicesCluster-Autoscaler — automatische Skalierung von Node-Pools für von Rancher bereitgestellte Cluster
Alle Komponenten werden als Helm-Charts aus dem verge-io Repository verteilt und können über die Helm-CLI oder die Rancher Apps UI installiert werden.
Nächste Schritte
Neu bei Rancher auf VergeOS? Siehe den Rancher-Integration Leitfaden für Cluster-Bereitstellung, die Vorbereitung von Template-VMs und das Einrichten des Node-Drivers.
Haben Sie bereits einen laufenden Cluster? Fügen Sie das Helm-Repository hinzu und erkunden Sie die verfügbaren Charts:
Besuchen Sie die unten aufgeführten Projekt-Repositories für Chart-Werte, Konfigurationsreferenzen und Release Notes.
Dokumentation und Ressourcen
Container Storage Interface-Treiber
Cloud Controller Manager
Helm-Chart-Repository
Upstream-Cluster-Autoscaler
Support
Wenn Sie auf Probleme stoßen oder Funktionswünsche haben, eröffnen Sie bitte ein Issue im entsprechenden GitHub-Repository:
Zuletzt aktualisiert
War das hilfreich?