Informazioni sui pool di nodi
Un pool di nodi
è un gruppo di nodi all'interno di un cluster che hanno tutti la stessa configurazione.
In genere, definisci pool di nodi separati quando hai pod con requisiti di risorse diversi.
Ad esempio, i pod apigee-cassandra
richiedono uno spazio di archiviazione permanente, mentre gli altri pod ibride Apigee no.
Questo argomento spiega come configurare i pool di nodi dedicati per un'installazione ibrida.
Utilizzo di nodeSelectors 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. Utilizzo del valore predefinito
configurazioni di nodeSelector,
il programma di installazione assegnerà i pod Cassandra a un pool di nodi stateful denominato apigee-data
e
gli altri pod a un pool di nodi stateless denominato apigee-runtime
. Non devi fare altro che
crea pool di nodi con questi nomi e Apigee hybrid gestisce i dettagli di pianificazione dei pod
per te:
Nome pool di nodi predefinito | Descrizione |
---|---|
apigee-data |
Un pool di nodi con stato. |
apigee-runtime |
Un pool di nodi stateless. |
Di seguito è riportata la configurazione predefinita di nodeSelector
. La proprietà apigeeData
specifica un pool di nodi per i pod Cassandra. apigeeRuntime
specifica il pool di nodi per tutti gli altri pod. Puoi sostituire questi valori predefiniti
del 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 siano pianificati sui nodi corretti, devi solo
crea due pool di nodi con i nomi apigee-data
e apigee-runtime
.
La proprietà requiredForScheduling
La sezione di configurazione nodeSelector
ha una proprietà chiamata
requiredForScheduling
:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Se impostato su false
(valore predefinito), i pod sottostanti verranno pianificati indipendentemente dal fatto che i pool di nodi siano o meno
vengono definiti con i nomi obbligatori. Ciò significa che se dimentichi di creare pool di nodi
o se per errore assegni a un pool di nodi un nome diverso da apigee-runtime
o
apigee-data
, l'installazione del runtime ibrida 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 corrispondenti 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 crearne di personalizzati e specificarli nella stanza nodeSelector
. Ad esempio, la seguente configurazione assegna
Pod Cassandra nel pool denominato my-cassandra-pool
e a tutti gli altri pod nel 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"
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
sul pool di nodi con il valore
apigee-custom
al componente runtime
:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
Puoi specificare un pool di nodi personalizzato su uno di questi componenti:
istio
mart
synchronizer
runtime
cassandra
udca
logger
Configurazione del pool di nodi GKE
In GKE, i pool di nodi devono avere un nome univoco che viene specificato al momento della creazione i pool 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 occorrono ulteriori configurazioni. Se vuoi utilizzare nomi di nodi personalizzati, consulta
Utilizzare 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 il pool di nodi feature; di conseguenza, dovrai etichettare manualmente nodi worker come spiegato di seguito. Esegui i seguenti passaggi una volta che il deployment di elaborazione è in esecuzione:
- 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 <none> 7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready <none> 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready <none> 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready <none> 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready <none> 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready <none> 7d v1.14.6-gke.2
- Etichetta ogni nodo per distinguere i nodi di runtime dai 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
Override del pool di nodi per componenti specifici su Anthos GKE
Puoi anche sostituire le configurazioni dei pool di nodi
a livello di singolo componente per un'installazione 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-custom
Puoi specificare un pool di nodi personalizzato su uno di questi componenti:
istio
mart
synchronizer
runtime
cassandra
udca
logger