Configurazione dei pool di nodi dedicati

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 l'archiviazione permanente, mentre al contrario degli altri pod ibridi di Apigee.

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 Cassandra e uno per tutti gli altri pod del 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 stateful.
apigee-runtime Un pool di nodi stateless.

Di seguito è riportata la configurazione predefinita di nodeSelector. apigeeData specifica un pool di nodi per i pod Cassandra. apigeeRuntime specifica il nodo per tutti gli altri pod. Puoi sostituire questi valori predefiniti del file di override, come illustrato 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"

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 della 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 o meno vengono definiti con i nomi obbligatori. 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 apigee-data, l'installazione del runtime ibrido verrà eseguita. Kubernetes deciderà dove eseguire i pod.

Se imposti requiredForScheduling su true, l'installazione non andrà a buon fine a meno che non esistano pool di nodi corrispondenti alle chiavi e ai valori nodeSelector configurati.

Utilizzo di nomi di pool di nodi personalizzati

Se non vuoi utilizzare pool di nodi con i nomi predefiniti, puoi creare pool di nodi con personalizzati e specificali nel nodeSelector stanza. 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 eseguire l'override delle 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 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 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 nodo 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 il pool di nodi caratteristica; di conseguenza, dovrai etichettare manualmente nodi worker come spiegato di seguito. Esegui i seguenti passaggi una volta che il deployment di elaborazione è in esecuzione:

  1. 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
    
  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, assegnati dalla configurazione sul 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