Virtuelle Cluster sind voll funktionsfähige Kubernetes-Cluster, die in einem physischen Host-Cluster verschachtelt sind und eine bessere Isolation und Flexibilität zur Unterstützung der Mandantenfähigkeit bieten. Mehrere Teams können unabhängig voneinander innerhalb derselben physischen Infrastruktur arbeiten und dabei Konflikte minimieren, die Autonomie maximieren und die Kosten senken.
Virtuelle Cluster werden innerhalb von Host-Cluster-Namespaces ausgeführt, fungieren jedoch als separate Kubernetes-Cluster mit eigenem API-Server, eigener Steuerungsebene, eigenem Synchronizer und eigenem Ressourcensatz. Während virtuelle Cluster die physischen Ressourcen des Host-Clusters (z. B. CPU, Arbeitsspeicher und Speicher) gemeinsam nutzen, verwalten sie ihre Ressourcen unabhängig voneinander und ermöglichen so eine effiziente Nutzung und Skalierung.
Virtuelle Cluster interagieren mit dem Host-Cluster zur Ressourcenplanung und Vernetzung, behalten jedoch eine Abstraktionsebene bei, um sicherzustellen, dass Vorgänge innerhalb eines virtuellen Clusters keinen direkten Einfluss auf den globalen Status des Host-Clusters haben.
⭐️ Gefällt dir vcluster? Unterstützen Sie das Projekt mit einem Stern ⭐️
Virtuelle Cluster bieten enorme Vorteile für groß angelegte Kubernetes-Bereitstellungen und Mandantenfähigkeit.
Detaillierte Berechtigungen: vCluster-Benutzer arbeiten mit minimierten Berechtigungen im Host-Cluster, wodurch das Risiko eines Missbrauchs privilegierter Zugriffe erheblich verringert wird. Innerhalb ihres vClusters haben Benutzer die Kontrolle auf Administratorebene und können CRDs, RBAC und andere Sicherheitsrichtlinien unabhängig verwalten.
Isolierte Steuerungsebene: Jeder vCluster verfügt über einen eigenen dedizierten API-Server und eine eigene Steuerungsebene, wodurch eine starke Isolationsgrenze entsteht.
Anpassbare Sicherheitsrichtlinien: Mandanten können zusätzlich zu den vorhandenen Richtlinien und Sicherheitsmaßnahmen im zugrunde liegenden physischen Host-Cluster zusätzliche vCluster-spezifische Governance implementieren, einschließlich OPA-Richtlinien, Netzwerkrichtlinien, Ressourcenkontingente, Grenzbereiche und Zugangskontrolle.
Verbesserter Datenschutz: Mit Optionen für separate Sicherungsspeicher, einschließlich eingebetteter SQLite-, etcd- oder externer Datenbanken, ermöglichen virtuelle Cluster eine isolierte Datenverwaltung und verringern so das Risiko von Datenlecks zwischen Mandanten.
Vollständiger Administratorzugriff pro Mandant: Mandanten können CRDs frei bereitstellen, Namespaces erstellen, Knoten markieren und kennzeichnen sowie Cluster-Ressourcen verwalten, die normalerweise auf standardmäßige Kubernetes-Namespaces beschränkt sind.
Isoliertes und dennoch integriertes Netzwerk: Während vCluster eine automatische Isolierung gewährleistet (z. B. können Pods in verschiedenen virtuellen Clustern standardmäßig nicht kommunizieren), ermöglicht es konfigurierbare Netzwerkrichtlinien und Dienstfreigabe und unterstützt bei Bedarf sowohl die Trennung als auch die gemeinsame Nutzung.
Knotenverwaltung: Weisen Sie statische Knoten bestimmten virtuellen Clustern zu oder teilen Sie Knotenpools zwischen mehreren virtuellen Clustern und sorgen Sie so für Flexibilität bei der Ressourcenzuweisung.
Leichte Infrastruktur: Virtuelle Cluster sind deutlich schlanker als physische Cluster und können in Sekundenschnelle hochgefahren werden, was in scharfem Kontrast zu den langen Bereitstellungszeiten steht, die häufig in Umgebungen wie EKS auftreten (ca. 45 Minuten).
Ressourceneffizienz: Durch die gemeinsame Nutzung der Ressourcen des zugrunde liegenden Host-Clusters minimieren virtuelle Cluster den Bedarf an zusätzlicher physischer Infrastruktur und reduzieren so Kosten und Umweltbelastung.
Vereinfachte Verwaltung: Die vCluster-Steuerungsebene, die in einem einzelnen Pod ausgeführt wird, minimiert zusammen mit dem optionalen integrierten CoreDNS den Betriebsaufwand und macht virtuelle Cluster besonders für groß angelegte Bereitstellungen und Szenarien mit mehreren Mandanten geeignet.
Verschiedene Kubernetes-Umgebungen: vCluster unterstützt verschiedene Kubernetes-Versionen und -Distributionen (einschließlich K8s, K3s und K0s), wodurch Versionsunterschiede möglich sind. Dadurch ist es möglich, jeden virtuellen Cluster an spezifische Anforderungen anzupassen, ohne andere zu beeinträchtigen.
Anpassbare Backing-Stores: Wählen Sie aus einer Reihe von Datenspeichern, von einfachen (SQLite) bis hin zu unternehmenstauglichen Optionen (eingebettete etcd, externe Datenspeicher wie Global RDS), die verschiedenen Skalierbarkeits- und Haltbarkeitsanforderungen gerecht werden.
Läuft überall: Virtuelle Cluster können auf EKS, GKE, AKS, OpenShift, RKE, K3s, in der Cloud, am Edge und vor Ort ausgeführt werden. Solange es sich um einen K8s-Cluster handelt, können Sie darauf einen virtuellen Cluster betreiben.
Reduzierte API-Serverlast: Virtuelle Cluster mit jeweils eigenem dedizierten API-Server reduzieren die Betriebslast auf dem Kubernetes-API-Server des Host-Clusters erheblich, indem sie Anforderungen intern isolieren und verarbeiten.
Konfliktfreie CRD-Verwaltung: Die unabhängige Verwaltung von CRDs innerhalb jedes virtuellen Clusters eliminiert das Potenzial für CRD-Konflikte und Versionsdiskrepanzen und gewährleistet einen reibungsloseren Betrieb und eine einfachere Skalierung, wenn die Benutzerbasis wächst.
Stärken Sie Entwickler mit Self-Service-Kubernetes: Vereinfachen Sie den Kubernetes-Zugriff für Entwickler durch virtuelle Self-Service-Cluster, reduzieren Sie menschliches Versagen und erhöhen Sie die Autonomie der Entwickler, ohne die Sicherheits- und Compliance-Anforderungen zu beeinträchtigen.
Beschleunigen Sie CI/CD mit kurzlebigen Kubernetes-Clustern: Erstellen Sie sofort saubere, neue virtuelle Kubernetes-Cluster für jede Pull-Anfrage und ermöglichen Sie so schnelle, isolierte Tests und PR-Vorschauen ohne Wartezeiten und die Probleme einer gemeinsamen Testumgebung.
Erweitern Sie Ihr ISV-Angebot mit einem dedizierten Cluster pro Kunde: Hosten Sie jeden Kunden in einem virtuellen Cluster mit strikter Mandantenisolierung und nahtloser Skalierbarkeit und konsolidieren Sie gleichzeitig wichtige Tools in einem einheitlichen Plattform-Stack, der mehrere Mandanten bedient.
Erstellen Sie einen verwalteten Kubernetes-Service mit erstklassigen COGS und hohen Margen: Ermöglichen Sie den direkten Kundenzugriff auf dedizierte virtuelle Kubernetes-Cluster und optimieren Sie die Knoten- und Ressourcenzuweisung für branchenführende Effizienz und beispiellose Skalierbarkeit.
Lesen Sie unsere Kurzanleitung, um Ihren ersten vCluster bereitzustellen!
Vielen Dank für Ihr Interesse an einer Mitarbeit! Weitere Informationen finden Sie unter CONTRIBUTING.md.
Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Eine Kopie der Lizenz erhalten Sie unter
http://www.apache.org/licenses/LICENSE-2.0
Sofern nicht durch geltendes Recht vorgeschrieben oder schriftlich vereinbart, wird die im Rahmen der Lizenz vertriebene Software „WIE BESEHEN“ und OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Die spezifische Sprache, die die Berechtigungen und Einschränkungen im Rahmen der Lizenz regelt, finden Sie in der Lizenz.