Creazione di un cluster basato su route


Questa pagina mostra come creare un cluster basato su route Google Kubernetes Engine (GKE).

Panoramica

In GKE, i cluster possono essere distinti in base al modo in cui indirizzano il traffico da un pod a un altro. Un cluster che utilizza route di Google Cloud è chiamato cluster basato su route. R che utilizza IP alias è chiamato cluster nativo VPC.

Nativo VPC è il tipo consigliato ed è l'impostazione predefinita per i nuovi cluster in GKE 1.21.0-gke.1500 e versioni successive. Per creare un cluster basato su route, devi disattivare esplicitamente l'opzione VPC nativo.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Crea un cluster basato su route

Puoi creare un cluster basato su route utilizzando la CLI gcloud o la console Google Cloud.

gcloud

Per creare un cluster basato su route, includi il flag --no-enable-ip-alias nel comando di creazione del cluster:

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias

Sostituisci CLUSTER_NAME con un nome scelto per il tuo cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Inserisci un nome per il cluster.

  4. Nel riquadro di navigazione, in Cluster, fai clic su Networking.

  5. In Opzioni di networking avanzate, deseleziona la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias).

  6. Fai clic su Crea.

Crea un cluster basato su route e seleziona l'intervallo IP del piano di controllo

Per impostazione predefinita, i cluster con Private Service Connect utilizzano l'intervallo della subnet principale per eseguire il provisioning dell'indirizzo IP interno assegnato all'endpoint del piano di controllo. Puoi eseguire l'override di questa impostazione predefinita selezionando un intervallo di subnet diverso solo durante la creazione del cluster. Le sezioni seguenti descrivono come creare un cluster con Private Service Connect e sostituire l'intervallo della sottorete.

gcloud

Crea un cluster con Private Service Connect:

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --region=COMPUTE_REGION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster GKE.
  • SUBNET_NAME: il nome di una subnet esistente.
  • COMPUTE_REGION: il regione di computing per il cluster. Per creare un cluster di zona, sostituisci questo flag con --zone=COMPUTE_ZONE, dove COMPUTE_ZONE è un zona di computing.

Console

Prerequisito

Per assegnare una subnet al control plane di un nuovo cluster, devi prima aggiungere una subnet.

Crea un cluster e assegna l'intervallo IP del control plane

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Inserisci un nome per il cluster.

  4. Nel riquadro di navigazione, in Cluster, fai clic su Networking.

  5. Nella sezione Accesso alla rete IPv4:

    1. Per creare un cluster GKE come pubblico, seleziona il pulsante di opzione Cluster pubblico.
    2. Per creare un cluster GKE come privato, seleziona il pulsante di opzione Cluster privato.

    In entrambi i casi, puoi modificare la modalità di isolamento del cluster in un secondo momento quando modifichi la configurazione del cluster.

  6. Nella sezione Opzioni di rete avanzate, seleziona la casella di controllo Esegui l'override della subnet endpoint privata predefinita del piano di controllo.

  7. Nell'elenco Subnet endpoint privati, seleziona la subnet creata.

  8. Deseleziona la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias).

  9. Fai clic su Crea.

Verificare che il cluster utilizzi le route

gcloud

Elenca i nodi del cluster:

kubectl get nodes

L'output mostra i nomi dei nodi:

NAME                                 STATUS   ...     AGE    VERSION
gke-xxx-default-pool-83e239a7-kcg8   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-qm6b   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-wnrq   Ready    ...     42m    1.9.7-gke.6

Elenca i tuoi percorsi:

gcloud compute routes list

In questo output, nella colonna NEXT_HOP, cerca il nome di uno dei tuoi nodi cluster:

NAME                 NETWORK        DEST_RANGE         NEXT_HOP
...
[ROUTE_NAME]         default        10.24.0.0/24       [YOUR_NODE_NAME]
...

In questo output, la route fornisce un hop successivo per qualsiasi pacchetto a un determinato intervallo di indirizzi di pod.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da controllare.

  3. Nella pagina Dettagli cluster, fai clic sulla scheda Nodi.

  4. Nella sezione Nodi, prendi nota dei nomi di tutti i nodi.

  5. Vai alla pagina Route (Percorsi) nella console Google Cloud.

    Vai a Route

  6. Nell'elenco delle route, cerca il nome nella colonna Hop successivo in uno dei nodi del cluster. Fai clic sul nome del percorso per quella riga.

  7. Nella pagina Dettagli route, controlla la sezione Hop successivo per verificare che la route fornisca un hop successivo per qualsiasi pacchetto destinato a un determinato intervallo di indirizzi pod.

Pod per nodo

In un cluster basato su route, a ogni nodo viene allocato un intervallo di indirizzi IP /24 per i pod. Con un intervallo /24, ci sono 256 indirizzi, ma il numero massimo di pod per nodo è 110. Avendo circa il doppio degli indirizzi IP disponibili di indirizzi IP possibili, Kubernetes è in grado di mitigare il riutilizzo degli indirizzi IP I pod vengono aggiunti e rimossi da un nodo.

Intervallo di indirizzi del pod

Un cluster basato su route ha un intervallo di indirizzi IP che vengono utilizzati per i pod Servizi. Anche se l'intervallo viene utilizzato sia per i pod che per i servizi, viene chiamato nell'intervallo di indirizzi dei pod. L'ultimo /20 dell'intervallo di indirizzi del pod viene utilizzato per i servizi. Un intervallo /20 ha 212 = 4096 indirizzi. Pertanto, 4096 indirizzi vengono utilizzati per i servizi e il resto dell'intervallo viene utilizzato per i pod.

Nell'output del comando, l'intervallo di indirizzi del pod è chiamato clusterIpv4Cidr e l'intervallo di indirizzi utilizzati per i servizi è chiamato servicesIpv4Cidr. Ad esempio, l'output di gcloud container clusters describe include un output simile al seguente:

clusterIpv4Cidr: 10.96.0.0/16
...
servicesIpv4Cidr: 10.96.240.0/20

L'intervallo di indirizzi dei pod può provenire da qualsiasi blocco RFC 1918: 10.0.0.0/8, 172.16.0.0/12 o 192.168.0.0/16.

Puoi personalizzare l'intervallo di indirizzi dei pod specificando un intervallo CIDR. Ad esempio, puoi specificare l'intervallo 10.96.0.0/16.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --no-enable-ip-alias \
    --cluster-ipv4-cidr 10.96.0.0/16

Sostituisci CLUSTER_NAME con un nome scelto per il tuo cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Inserisci un nome per il cluster.

  4. Nel riquadro di navigazione, in Cluster, fai clic su Networking.

  5. In Opzioni di networking avanzate, deseleziona la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias).

  6. Nel campo Intervallo di indirizzi pod, inserisci 10.96.0.0/16.

  7. Fai clic su Crea.

Considerazioni per la definizione delle dimensioni del cluster

Il numero massimo di nodi, pod e servizi per un determinato cluster GKE è determinato dalle dimensioni della sottorete del cluster e dall'intervallo di indirizzi pod. Non puoi modificare Dimensione dell'intervallo di indirizzi dei pod dopo la creazione di un cluster. Quando crei un cluster, assicurati di scegliere un intervallo di indirizzi del pod sufficientemente ampio da soddisfare la crescita prevista del cluster.

La tabella seguente spiega come scegliere intervalli di indirizzi sufficienti per un cluster con 900 nodi:

Intervallo Consulenza
Nodi

Gli indirizzi IP dei nodi vengono presi dall'intervallo primario della subnet del cluster. La subnet del cluster deve essere sufficientemente grande da contenere il numero totale di nodi del cluster.

Ad esempio, se prevedi di creare un cluster di 900 nodi, la subnet del cluster deve avere una dimensione minima di /22. Un intervallo /22 ha 210 = 1024 indirizzi IP esterni. Sottrai il valore 4 indirizzi IP inutilizzabili, e si ottiene 1020, sufficiente per i 900 nodi.

Intervallo di indirizzi del pod

Ogni nodo ha un intervallo /24 di indirizzi IP per i pod. Un intervallo /24 ha 28 = 256 indirizzi. Ricorda che 4096 indirizzi nell'intervallo di indirizzi del pod vengono utilizzati per i servizi. La parte rimanente L'intervallo di indirizzi dei pod viene utilizzato per i pod e deve essere abbastanza grande da contenere di nodi x 256 indirizzi.

Supponiamo di voler creare un cluster di 900 nodi. In questo caso, sono necessari 900 x 256 = 230.400 indirizzi per i pod. Supponiamo ora di avere un intervallo di indirizzi pod /14. Un intervallo /14 ha 218 = 262.144 indirizzi. Sottrai gli errori 4096 per i servizi e ne avrai 258.048, sufficienti per e circa 900 nodi.

Valori predefiniti e limiti per le dimensioni degli intervalli

La tabella seguente fornisce le dimensioni minime, massime e predefinite per i tra la subnet del cluster e l'intervallo di indirizzi dei pod.

Intervallo Dimensioni predefinite Dimensioni minime Dimensioni massime
Nodi

/20, con 212 = 4096 indirizzi. Sottrai 4 indirizzi riservati e ottieni 4092 indirizzi per i nodi.

/29, che ha 23 = 8 indirizzi. Sottrai 4 indirizzi riservati e ottieni 4 indirizzi per i nodi.

/7, che ha 225 indirizzi. Si tratta di circa 33 milioni di indirizzi per i nodi.

Intervallo di indirizzi del pod

/14, che ha 218 = 262.144 indirizzi.

/19, che ha 213 = 8192 indirizzi.

/9, che ha 223 = 8.388.608 indirizzi.

Limitazioni

  • Non puoi eseguire la migrazione di un cluster nativo di VPC a un cluster basato su route in un cluster Kubernetes.
  • Non puoi eseguire la migrazione di un cluster basato su route a un cluster VPC nativo.
  • I cluster basati su route possono utilizzare solo indirizzi nella specifica Intervallo 1918 per l'IP privato indirizzi IP esterni. I cluster nativi di VPC hanno un intervallo più ampio di indirizzi utilizzabili.
  • I cluster basati su route non supportano il networking a doppio stack.

Passaggi successivi