Questa pagina mostra come creare un cluster basato su route in Google Kubernetes Engine (GKE).
Panoramica
In GKE, i cluster possono essere distinti in base al modo in cui instradano il traffico da un pod a un altro. Un cluster che utilizza Google Cloud le route è chiamato cluster basato su route. Un cluster che utilizza gli IP alias è chiamato cluster nativo di VPC.
Il tipo nativo di VPC è il tipo consigliato ed è il valore predefinito per i nuovi cluster nelle versioni di GKE 1.21.0-gke.1500 e successive. Per creare un cluster basato su route, devi disattivare esplicitamente l'opzione nativa di VPC.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Creare un cluster basato su route
Puoi creare un cluster basato su route utilizzando gcloud CLI o la Google Cloud console.
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 a tua scelta per il cluster.
Console
Nella Google Cloud console, vai alla pagina Crea un cluster Kubernetes.
Inserisci un nome per il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Networking.
In Opzioni di networking avanzate, deseleziona la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias).
Fai clic su Crea.
Creare un cluster basato su route e selezionare l'intervallo IP del control plane
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 control plane. Puoi sostituire questa impostazione predefinita selezionando un intervallo di subnet diverso solo durante la creazione del cluster. Le sezioni seguenti mostrano come creare un cluster con Private Service Connect ed eseguire l'override dell'intervallo di subnet.
gcloud
Crea un cluster con Private Service Connect:
gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias \
--private-endpoint-subnetwork=SUBNET_NAME \
--location=CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster GKE.SUBNET_NAME: il nome di una subnet esistente.CONTROL_PLANE_LOCATION: la località Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Console
Prerequisito
Per assegnare una subnet al control plane di un nuovo cluster, devi prima aggiungere una subnet.
Creare un cluster e assegnare l'intervallo IP del control plane
Nella Google Cloud console, vai alla pagina Crea un cluster Kubernetes.
Inserisci un nome per il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Networking.
In Accesso al control plane, configura l'accesso agli endpoint del control plane.
Nella sezione Opzioni di networking avanzate, seleziona la casella di controllo Esegui l'override della subnet predefinita degli endpoint privati del control plane.
Nell'elenco Subnet endpoint privati, seleziona la subnet creata.
Deseleziona la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias).
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 le route:
gcloud compute routes list
In questo output, nella colonna NEXT_HOP, cerca il nome di uno dei nodi del 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 destinato a un intervallo di indirizzi pod specifico.
Console
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
Nell'elenco dei cluster, fai clic sul nome del cluster che vuoi ispezionare.
Nella pagina Dettagli cluster, fai clic sulla scheda Nodi.
Nella sezione Nodi, prendi nota dei nomi di uno dei nodi.
Vai alla pagina Route nella Google Cloud console.
Nell'elenco delle route, nella colonna Hop successivo, cerca il nome di uno dei nodi del cluster. Fai clic sul nome della route per quella riga.
Nella pagina Dettagli route, controlla la sezione Hop successivo per verificare che la route fornisca un hop successivo per qualsiasi pacchetto destinato a un intervallo di indirizzi pod specifico.
Pod per nodo
In un cluster basato su route, a ogni nodo viene allocato un intervallo /24 di indirizzi IP per i pod. Con un intervallo /24, sono disponibili 256 indirizzi, ma il numero massimo di pod per nodo è 110. Avendo circa il doppio degli indirizzi IP disponibili rispetto ai pod possibili, Kubernetes è in grado di mitigare il riutilizzo degli indirizzi IP man mano che 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 utilizzati per pod e servizi. Anche se l'intervallo viene utilizzato sia per i pod sia per i servizi, viene chiamato intervallo di indirizzi dei pod. L'ultimo /20 dell'intervallo di indirizzi dei pod viene utilizzato per i servizi. Un intervallo /20 ha 212 = 4096 indirizzi. Quindi 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 dei 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ò essere 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 a tua scelta per il cluster.
Console
Nella Google Cloud console, vai alla pagina Crea un cluster Kubernetes.
Inserisci un nome per il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Networking.
In Opzioni di networking avanzate, deseleziona la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias).
Nel campo Intervallo di indirizzi dei pod, inserisci
10.96.0.0/16.Fai clic su Crea.
Considerazioni per il dimensionamento del cluster
Il numero massimo di nodi, pod e servizi per un determinato cluster GKE è determinato dalle dimensioni della subnet del cluster e dalle dimensioni dell'intervallo di indirizzi dei pod. Non puoi modificare le dimensioni dell'intervallo di indirizzi dei pod dopo aver creato un cluster. Quando crei un cluster, assicurati di scegliere un intervallo di indirizzi dei pod sufficientemente grande 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 ricavati dall'intervallo principale della subnet del cluster. La subnet del cluster deve essere sufficientemente grande da contenere il numero totale di nodi nel cluster. Ad esempio, se prevedi di creare un cluster di 900 nodi, la subnet del cluster deve avere almeno dimensioni /22. Un intervallo /22 ha 210 = 1024 indirizzi. Sottrai i 4 indirizzi IP inutilizzabili, e ottieni 1020, che è 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 dei pod vengono utilizzati per i servizi. La parte rimanente dell' intervallo di indirizzi dei pod viene utilizzata per i pod e deve essere sufficientemente grande da contenere il numero di nodi x 256 indirizzi. Supponiamo che tu preveda di creare un cluster di 900 nodi. Avrai bisogno di 900 x 256 = 230.400 indirizzi per i pod. Supponiamo ora di avere un intervallo di indirizzi dei pod /14. Un intervallo /14 ha 218 = 262.144 indirizzi. Sottrai i 4096 indirizzi utilizzati per i servizi e ottieni 258.048, che è sufficiente per 900 nodi. |
Valori predefiniti e limiti per le dimensioni dell'intervallo
La tabella seguente indica le dimensioni minime, massime e predefinite per la subnet del cluster e l'intervallo di indirizzi dei pod.
| Intervallo | Dimensioni predefinite | Dimensioni minime | Dimensioni massime |
|---|---|---|---|
| Nodi | /20, che ha 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.
- Non puoi eseguire la migrazione di un cluster basato su route a un cluster nativo di VPC.
- I cluster basati su route possono utilizzare solo indirizzi nell'intervallo RFC 1918 per gli indirizzi IP privati. I cluster nativi di VPC hanno un intervallo più ampio di indirizzi utilizzabili.
- I cluster basati su route non supportano il networking dual-stack.
Passaggi successivi
- Creazione di un cluster nativo di VPC
- Creazione di un cluster zonale
- Panoramica degli intervalli IP alias