Kubernetes Cluster als vcluster
Ein vcluster bietet eine Alternative zu den auf NKE basierenden Kubernetes-Clustern mit unterschiedlichen Anwendungsbereichen und Beschränkungen. Dabei wird vcluster verwendet, um Kubernetes Cluster zu einem günstigeren Preis anzubieten, wobei geringe Abstriche bei den Verfügbarkeitsgarantien und den Managed Add-ons gemacht werden. Da vclusters über NKE laufen, greifen sie auf die gleiche Betriebs-Infrastruktur zu.
Diese Vergleichstabelle sollte dir eine Übersicht über die wesentlichen Unterschiede bieten:
| NKE | vcluster | |
|---|---|---|
| Service Type Load Balancer | ✓ | ✓ |
| Persistent Storage (RWO/RWX) | ✓ | ✓ |
| Ingress | ✓ | ✓ |
| Autoscaling | ✓ | ✓ |
| Argo CD Integration | ✓ | ✓ |
| NKE Maschinentypen | ✓ | ✓ |
| Dedizierte Worker Nodes | ✓ | ✓ |
| Dedizierte HA Control-Plane Nodes | ✓ | ✗ |
| Cluster Add-ons | ✓ | ✗ |
| Automatisches Backup | ✓ | ✗ |
| Verfügbarkeitsgarantie (SLA) | ✓ | ✗ |
| Cluster-Gebühr | ✓ | ✗ |
| Schnelle Erstellungszeit (< ~2 min) | ✗ | ✓ |
| Cluster Admin | ✗ | ✓ |
Erste Schritte
Um bei vcluster einzusteigen, benötigst du zunächst ein Login, um auf unser Cockpit zuzugreifen. Wähle dann einfach Managed Kubernetes aus der Produktübersicht aus, klicke auf Add Cluster und wähle die Option vcluster. Um auf den Cluster zuzugreifen, sieh dir diesen Artikel zum Cluster-Login an.
Für weitere Informationen zu den verfügbaren Node-Typen, Load Balancern und Speichervarianten sieh dir bitte die Hauptdokumentation zu NKE an.
Anwendungsbereiche für einen vcluster
- CI/CD: Durch die Geschwindigkeit, mit der vcluster erstellt und gelöscht werden können, ebenso wie ihre geringen Kosten, sind sie gut als CI/CD-Pipelines geeignet, um deine App-Deployments durchgängig zu testen.
- Testen neuer Kubernetes-API-Versionen: Wir zielen darauf ab, dir immer die aktuellsten Kubernetes-Releases in vcluster bereitzustellen, damit du deine Apps frühzeitig in Bezug auf neue API-Versionen gegentesten kannst.
- Gut isolierte und kosteneffiziente Umgebungen: Für Staging- und Entwicklungsumgebung können eigene vcluster genutzt werden, um sie stärker von der Produktionsumgebung zu isolieren, statt mehrere Namespaces auf einem einzigen NKE-Cluster zu verwenden.
ArgoCD
Wenn du ArgoCD für das Deployment auf deinem vcluster verwenden möchtest, sind die Schritte, die welche im ArgoCD Artikel dokumentiert sind, nicht ausreichend.
Da vclusters keine vollständig verwalteten Cluster sind, musst du dem ArgoCD Service Account die Berechtigungen selbst erteilen.
Zuerst musst du den Namen des ArgoCD Service Account herausfinden:
$ kubectl get serviceaccounts -n default
argocd-xyz 1 188d
Dann musst du ein Clusterrolebinding erstellen und dem ArgoCD Service Account cluster-admin Rechte geben:
apiVersion: rbac.authorization.k8s.io/v1
Art: ClusterRoleBinding
Metadaten:
name: argocd
roleRef:
apiGroup: rbac.authorization.k8s.io
Art: ClusterRole
Name: cluster-admin
Subjekte:
- Art: ServiceAccount
Name: argocd-xyz
Namensraum: default
Ingress
Durch das Design von vcluster kann der Ingress Controller vom Host Cluster
verwendet werden. Deshalb muss kein zusätzlicher Ingress controller im vcluster
erstellt werden. Du kannst die IngressClass und den Host des vordefinierten
Ingress im Cockpit oder im Status auf der API finden. Das ermöglicht auch
automatische Let's Encrypt TLS-Zertifikate wenn der
Ingress Controller vom Host Cluster verwendet wird.
Für mehr Informationen zur Nutzung von Ingress, wende dich an die Ingress Dokumentation.
Installation eines Ingress Controllers
Sofern du nicht den vordefinierten Ingress Controller nutzen möchtest, kannst
du einen eigenen innerhalb des vclusters installieren. Bitte beachte dabei
einfach, dass ein anderer IngressClass-Name verwendet werden muss, damit
kein Konflikt mit der vordefinierten IngressClass entsteht.