Informazioni sui pool di nodi
Un pool di nodi è un gruppo di nodi all'interno di un cluster che ha 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 l'archiviazione permanente, mentre gli altri pod ibridi Apigee non lo richiedono.
Questo argomento illustra come configurare pool di nodi dedicati per un'installazione ibrida.
Utilizzo dei nodeSelector predefiniti
La best practice è configurare due pool di nodi dedicati: uno per i pod Cassandra e uno per tutti gli altri pod del runtime. Utilizzando le configurazioni nodeSelector predefinite, 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
. Devi solo creare pool di nodi con questi nomi e Apigee hybrid gestirà i dettagli di pianificazione dei pod per te:
Nome pool di nodi predefinito | Descrizione |
---|---|
apigee-data |
Un pool di nodi stateful. |
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 eseguire l'override di queste impostazioni predefinite nel file degli 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 creare due pool di nodi con i nomi apigee-data
e apigee-runtime
.
La proprietà requiredForScheduling
La sezione di configurazione di 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"
Se impostato su 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 pool di nodi
o se assegni accidentalmente un nome a un pool di nodi diverso da apigee-runtime
o
apigee-data
, l'installazione del runtime ibrido andrà a buon fine. Kubernetes deciderà dove eseguire i tuoi pod.
Se imposti requiredForScheduling
su true
, l'installazione non riuscirà a meno che non siano presenti pool di nodi corrispondenti alle chiavi e ai valori di 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 specificare questi nomi nella stanza nodeSelector
. Ad esempio, la configurazione seguente 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"
Override del pool di nodi per componenti specifici su GKE
Puoi anche eseguire l'override delle 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-custom
Puoi specificare un pool di nodi personalizzato su uno qualsiasi 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 specificato da te al momento della creazione dei 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 sono necessarie ulteriori configurazioni. Se vuoi utilizzare nomi di nodi personalizzati, consulta
Utilizzo di nomi di pool di nodi personalizzati.
Configurazione del pool di nodi Anthos
Apigee hybrid è attualmente 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 è in esecuzione, esegui 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 <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 ciascun 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
Override del pool di nodi per componenti specifici su Anthos GKE
Puoi anche eseguire l'override delle 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-custom
Puoi specificare un pool di nodi personalizzato su uno qualsiasi di questi componenti:
istio
mart
synchronizer
runtime
cassandra
udca
logger