Informazioni sui node pool
Un node pool
è un gruppo di nodi all'interno di un cluster che condividono la stessa configurazione.
In genere, si definiscono node pool separati quando si hanno pod con requisiti di risorse diversi.
Ad esempio, i pod apigee-cassandra richiedono uno spazio di archiviazione permanente, mentre gli altri pod Apigee Hybrid no.
Questo argomento descrive come configurare i pool di nodi dedicati per un'installazione ibrida.
Utilizzo dei nodeSelector predefiniti
La best practice consiste nel configurare due pool di nodi dedicati: uno per i pod Cassandra e uno per tutti gli altri pod di runtime. Utilizzando le configurazioni predefinite di
nodeSelector, il programma di installazione assegnerà i pod Cassandra a un pool di nodi stateful denominato apigee-data e tutti
gli altri pod a un pool di nodi stateless denominato apigee-runtime. Tutto ciò che devi fare è
creare pool di nodi con questi nomi e Apigee hybrid gestisce i dettagli di pianificazione dei pod
per te:
| Nome predefinito del pool di nodi | Descrizione |
|---|---|
apigee-data |
Un pool di nodi stateful. |
apigee-runtime |
Un pool di nodi stateless. |
Di seguito è riportata la configurazione nodeSelector predefinita. La proprietà apigeeData
specifica un pool di nodi per i pod Cassandra. apigeeRuntime specifica il node pool per tutti gli altri pod. Puoi eseguire l'override di queste impostazioni predefinite nel file di override, come spiegato più avanti in questo argomento:
nodeSelector:
requiredForScheduling: false
apigeeRuntime:
key: "cloud.google.com/gke-nodepool"
value: "apigee-runtime"
apigeeData:
key: "cloud.google.com/gke-nodepool"
value: "apigee-data"
Ancora una volta, per assicurarti che i pod vengano pianificati sui nodi corretti, devi solo
creare due pool di nodi con i nomi apigee-data e apigee-runtime.
La proprietà requiredForScheduling
La sezione di configurazione nodeSelector ha una proprietà denominata
requiredForScheduling:
nodeSelector:
requiredForScheduling: false
apigeeRuntime:
key: "cloud.google.com/gke-nodepool"
value: "apigee-runtime"
apigeeData:
key: "cloud.google.com/gke-nodepool"
value: "apigee-data"false (valore predefinito), i pod sottostanti verranno pianificati indipendentemente dal fatto che i pool di nodi
siano definiti con i nomi richiesti. Ciò significa che se dimentichi di creare node pool
o se assegni accidentalmente a unpool di nodil un nome diverso da apigee-runtime o
apigee-data, l'installazione di runtime ibrido andrà a buon fine. Kubernetes
deciderà dove eseguire i pod.
Se imposti requiredForScheduling su true, l'installazione non andrà a buon fine
a meno che non siano presenti pool di nodi che corrispondono alle chiavi e ai valori nodeSelector configurati.
Utilizzo di nomi di pool di nodi personalizzati
Se non vuoi utilizzare i pool di nodi con i nomi predefiniti, puoi creare pool di nodi con
nomi personalizzati e specificarli nella
sezione nodeSelector. Ad esempio, la seguente configurazione assegna i pod Cassandra al pool denominato my-cassandra-pool e tutti gli altri pod al pool denominato my-runtime-pool:
nodeSelector:
requiredForScheduling: false
apigeeRuntime:
key: "cloud.google.com/gke-nodepool"
value: "my-runtime-pool"
apigeeData:
key: "cloud.google.com/gke-nodepool"
value: "my-cassandra-pool"Eseguire l'override del pool di nodi per componenti specifici su GKE
Puoi anche sostituire le configurazioni del pool di nodi
a livello di singolo componente. Ad esempio, la seguente configurazione assegna
il pool di nodi con il valore
apigee-custom al componente runtime:
runtime:
nodeSelector:
key: cloud.google.com/gke-nodepool
value: apigee-customPuoi specificare un pool di nodi personalizzato su uno qualsiasi di questi componenti:
istiomartsynchronizerruntimecassandraudcalogger
Configurazione pool di nodi GKE
In GKE, i node pool devono avere un nome univoco che fornisci quando li crei e GKE etichetta automaticamente ogni nodo con quanto segue:
cloud.google.com/gke-nodepool=the_node_pool_name
Se crei pool di nodi denominati apigee-data e apigee-runtime,
non è necessaria alcuna ulteriore configurazione. Se vuoi utilizzare nomi di nodi personalizzati, vedi
Utilizzo di nomi di pool di nodi personalizzati.
Configurazione del pool di nodi Anthos
Al momento, Apigee Hybrid è supportato solo su Anthos 1.1.1. Questa versione di Anthos non supporta la funzionalità del pool di nodi, pertanto devi etichettare manualmente i nodi worker come spiegato di seguito. Una volta che il cluster ibrido è operativo, segui questi passaggi:
- Esegui questo comando per ottenere un elenco dei nodi worker nel cluster:
kubectl -n apigee get nodes
Output di esempio:
NAME STATUS ROLES AGE VERSION apigee-092d639a-4hqt Ready
7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready 7d v1.14.6-gke.2 - Etichetta ogni nodo per distinguere tra nodi di runtime e nodi di dati.
Utilizza questo comando per etichettare i nodi:
kubectl label node node_name key=value
Ad esempio:
$ kubectl label node apigee-092d639a-4hqt apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-092d639a-ffd0 apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-109b55fc-5tjf apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-c2a9203a-8h27 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-c70aedae-t366 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-d349e89b-hv2b apigee.com/apigee-nodepool=apigee-data
Eseguire l'override del pool di nodi per componenti specifici su Anthos GKE
Puoi anche sostituire le configurazioni del pool di nodi
a livello di singolo componente per un'installazione di Anthos GKE. Ad esempio, la seguente
configurazione assegna
il pool di nodi con il valore
apigee-custom al componente runtime:
runtime:
nodeSelector:
key: apigee.com/apigee-nodepool
value: apigee-customPuoi specificare un pool di nodi personalizzato su uno qualsiasi di questi componenti:
istiomartsynchronizerruntimecassandraudcalogger