Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

Come aggiungere e modificare un node group

I node group permettono di segmentare i nodi del vostro cluster Kubernetes in base alle esigenze dei vostri workload. Questa guida spiega come aggiungere, modificare e rimuovere node group nella vostra configurazione Hikube.

Prerequisiti

  • Un cluster Kubernetes Hikube distribuito (vedere l'avvio rapido)
  • kubectl configurato per interagire con l'API Hikube
  • Il file YAML di configurazione del vostro cluster

Fasi

1. Comprendere i tipi di istanze

Hikube propone tre serie di istanze adatte a diversi casi d'uso:

SerieRapporto CPU:RAMCaso d'uso
S (Standard)1:2Workload generali, applicazioni web
U (Universal)1:4Workload bilanciati, database
M (Memory Optimized)1:8Applicazioni ad alta intensita di memoria, cache

Dettaglio delle istanze disponibili:

IstanzavCPURAM
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. Aggiungere un node group

Per aggiungere un nuovo node group, aggiungete una voce sotto spec.nodeGroups nel vostro file di configurazione del cluster:

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

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

# Nuovo node group per il compute intensivo
compute:
minReplicas: 1
maxReplicas: 10
instanceType: "u1.4xlarge"
ephemeralStorage: 100Gi
roles: []
suggerimento

Scegliete un nome descrittivo per i vostri node group (compute, web, monitoring, gpu) per facilitare la gestione del cluster.

3. Modificare un node group esistente

Per modificare un node group, aggiornate i campi desiderati nel vostro file YAML. Ad esempio, per cambiare il tipo di istanza e aumentare l'archiviazione effimera:

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" # Modificato: da s1.large a u1.xlarge
ephemeralStorage: 100Gi # Modificato: da 50Gi a 100Gi
roles:
- ingress-nginx
avviso

Il cambio di instanceType provoca un rolling update dei nodi del gruppo. Assicuratevi che il vostro cluster disponga di capacità sufficiente per assorbire il carico durante l'aggiornamento.

4. Rimuovere un node group

Per rimuovere un node group, eliminate semplicemente il suo blocco dalla configurazione e ri-applicate:

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
# Il node group "compute" è stato rimosso
avviso

Prima di rimuovere un node group, assicuratevi che i workload in esecuzione su di esso possano essere ripianificati su altri gruppi. Utilizzate kubectl drain sui nodi interessati se necessario.

5. Applicare le modifiche

Applicate le modifiche con kubectl:

kubectl apply -f cluster-updated.yaml

Verifica

Verificate che le modifiche siano state prese in carico:

# Verificare la configurazione del cluster
kubectl get kubernetes my-cluster -o yaml | grep -A 15 nodeGroups

# Osservare i nodi del cluster figlio
kubectl --kubeconfig=cluster-admin.yaml get nodes -w

# Verificare le macchine in corso di provisioning
kubectl get machines -l cluster.x-k8s.io/cluster-name=my-cluster

Risultato atteso:

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

Per approfondire