Zum Hauptinhalt springen
Version: 3.0.0-alpha (Diátaxis)

Node Group hinzufügen und ändern

Node Groups ermöglichen es, die Knoten Ihres Kubernetes-Clusters nach den Bedürfnissen Ihrer Workloads zu segmentieren. Diese Anleitung erklärt, wie Sie Node Groups in Ihrer Hikube-Konfiguration hinzufügen, ändern und entfernen.

Voraussetzungen

  • Ein bereitgestellter Kubernetes-Hikube-Cluster (siehe Schnellstart)
  • kubectl konfiguriert für die Interaktion mit der Hikube-API
  • Die YAML-Konfigurationsdatei Ihres Clusters

Schritte

1. Instanztypen verstehen

Hikube bietet drei Instanzreihen für verschiedene Anwendungsfälle:

ReiheVerhältnis CPU:RAMAnwendungsfall
S (Standard)1:2Allgemeine Workloads, Webanwendungen
U (Universal)1:4Ausgewogene Workloads, Datenbanken
M (Memory Optimized)1:8Speicherintensive Anwendungen, Caches

Details der verfügbaren Instanzen:

InstanzvCPURAM
s1.small12 GB
s1.medium24 GB
s1.large48 GB
s1.xlarge816 GB
s1.2xlarge1632 GB
s1.4xlarge3264 GB
s1.8xlarge64128 GB
u1.medium14 GB
u1.large28 GB
u1.xlarge416 GB
u1.2xlarge832 GB
u1.4xlarge1664 GB
u1.8xlarge32128 GB
m1.large216 GB
m1.xlarge432 GB
m1.2xlarge864 GB
m1.4xlarge16128 GB
m1.8xlarge32256 GB

2. Node Group hinzufügen

Um eine neue Node Group hinzuzufügen, fügen Sie einen Eintrag unter spec.nodeGroups in Ihrer Cluster-Konfigurationsdatei hinzu:

cluster-with-compute.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Kubernetes
metadata:
name: my-cluster
spec:
controlPlane:
replicas: 3

nodeGroups:
# Bestehende Node Group
general:
minReplicas: 2
maxReplicas: 5
instanceType: "s1.large"
ephemeralStorage: 50Gi
roles:
- ingress-nginx

# Neue Node Group für rechenintensive Aufgaben
compute:
minReplicas: 1
maxReplicas: 10
instanceType: "u1.4xlarge"
ephemeralStorage: 100Gi
roles: []
Tipp

Wählen Sie beschreibende Namen für Ihre Node Groups (compute, web, monitoring, gpu), um die Cluster-Verwaltung zu erleichtern.

3. Bestehende Node Group ändern

Um eine Node Group zu ändern, aktualisieren Sie die gewünschten Felder in Ihrer YAML-Datei. Zum Beispiel, um den Instanztyp zu ändern und den ephemeren Speicher zu erhöhen:

cluster-updated.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Kubernetes
metadata:
name: my-cluster
spec:
controlPlane:
replicas: 3

nodeGroups:
general:
minReplicas: 2
maxReplicas: 5
instanceType: "u1.xlarge" # Geändert: von s1.large zu u1.xlarge
ephemeralStorage: 100Gi # Geändert: von 50Gi zu 100Gi
roles:
- ingress-nginx
Warnung

Die Änderung des instanceType löst ein Rolling Update der Knoten der Gruppe aus. Stellen Sie sicher, dass Ihr Cluster über ausreichend Kapazität verfügt, um die Last während des Updates aufzufangen.

4. Node Group entfernen

Um eine Node Group zu entfernen, entfernen Sie einfach ihren Block aus der Konfiguration und wenden Sie sie erneut an:

cluster-simplified.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Kubernetes
metadata:
name: my-cluster
spec:
controlPlane:
replicas: 3

nodeGroups:
general:
minReplicas: 2
maxReplicas: 5
instanceType: "s1.large"
ephemeralStorage: 50Gi
roles:
- ingress-nginx
# Die Node Group "compute" wurde entfernt
Warnung

Bevor Sie eine Node Group entfernen, stellen Sie sicher, dass die darauf laufenden Workloads auf andere Gruppen umgeplant werden können. Verwenden Sie bei Bedarf kubectl drain auf den betroffenen Knoten.

5. Änderungen anwenden

Wenden Sie die Änderungen mit kubectl an:

kubectl apply -f cluster-updated.yaml

Überprüfung

Prüfen Sie, ob die Änderungen übernommen wurden:

# Cluster-Konfiguration prüfen
kubectl get kubernetes my-cluster -o yaml | grep -A 15 nodeGroups

# Knoten des Child-Clusters beobachten
kubectl --kubeconfig=cluster-admin.yaml get nodes -w

# Maschinen prüfen, die gerade bereitgestellt werden
kubectl get machines -l cluster.x-k8s.io/cluster-name=my-cluster

Erwartetes Ergebnis:

NAME                         STATUS   ROLES    AGE   VERSION
my-cluster-general-xxxxx Ready <none> 10m v1.29.0
my-cluster-compute-yyyyy Ready <none> 2m v1.29.0

Weiterführende Informationen