Crea un cluster nativo di VPC

Questa pagina spiega come configurare i cluster nativi di VPC in Google Kubernetes Engine (GKE).

Per scoprire di più sui vantaggi e sui requisiti dei cluster nativi di VPC, consulta la panoramica dei cluster nativi di VPC.

Per i cluster GKE Autopilot, le reti VPC native sono abilitate per impostazione predefinita e non possono essere sostituite.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva 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 comando gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

Limitazioni

  • Non puoi convertire un cluster nativo di VPC in un cluster basato su route e viceversa.

  • I cluster VPC nativi richiedono reti VPC. Le reti legacy non sono supportate.

  • Come per qualsiasi cluster GKE, gli indirizzi Service (ClusterIP) sono disponibili solo dall'interno del cluster. Se devi accedere a un servizio Kubernetes da istanze VM al di fuori del cluster, ma all'interno della rete VPC e della regione del cluster, crea un bilanciatore del carico di rete passthrough interno.

  • Se utilizzi tutti gli indirizzi IP dei pod in una subnet, non puoi sostituire l'intervallo di indirizzi IP secondari della subnet senza rendere instabile il cluster. Tuttavia, puoi creare intervalli di indirizzi IP dei pod aggiuntivi utilizzando il CIDR multi-pod non contiguo.

Crea un cluster

Questa sezione mostra come completare le seguenti attività al momento della creazione del cluster:

  • Crea un cluster e una subnet contemporaneamente.
  • Crea un cluster in una subnet esistente.
  • Crea un cluster e seleziona l'intervallo di indirizzi IP del control plane.
  • Crea un cluster con networking dual-stack in una nuova subnet (disponibile nei cluster Autopilot versione 1.25 o successive e nei cluster Standard versione 1.24 o successive).
  • Crea contemporaneamente un cluster dual-stack e una subnet dual-stack (disponibile nei cluster Autopilot versione 1.25 o successive e nei cluster Standard versione 1.24 o successive).

Puoi anche creare un cluster e attivare la gestione automatica degli indirizzi IP nel tuo cluster (anteprima), il che significa che GKE crea automaticamente le subnet e gestisce gli indirizzi IP per te. Per saperne di più, consulta Utilizzare la gestione automatica degli indirizzi IP.

Dopo aver creato il cluster, puoi modificare l'accesso al piano di controllo del cluster. Per saperne di più, consulta Personalizzare l'isolamento di rete in GKE.

Creare un cluster e una subnet contemporaneamente

Le indicazioni riportate di seguito mostrano come creare contemporaneamente un cluster GKE e una subnet nativi VPC. Il metodo di assegnazione dell'intervallo secondario viene gestito da GKE quando esegui questi due passaggi con un unico comando.

Se utilizzi il VPC condiviso, non puoi creare contemporaneamente il cluster e la subnet. Al contrario, un amministratore di rete nel progetto host VPC condiviso deve prima creare la subnet. Poi puoi creare il cluster in una subnet esistente con un metodo di assegnazione dell'intervallo secondario gestito dall'utente.

gcloud

Per creare contemporaneamente un cluster e una subnet nativi di VPC, esegui questo comando:

gcloud container clusters create CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --enable-ip-alias \
    --create-subnetwork name=SUBNET_NAME,range=NODE_IP_RANGE \
    --cluster-ipv4-cidr=POD_IP_RANGE \
    --services-ipv4-cidr=SERVICES_IP_RANGE

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster GKE.
  • COMPUTE_LOCATION: la posizione di Compute Engine per il cluster.
  • SUBNET_NAME: il nome della subnet da creare. La regione della subnet è la stessa del cluster (o la regione contenente il cluster zonale). Utilizza una stringa vuota (name="") se vuoi che GKE generi un nome per te.
  • NODE_IP_RANGE: un intervallo di indirizzi IP in notazione CIDR, ad esempio 10.5.0.0/20, o la dimensione della maschera di subnet di un blocco CIDR, ad esempio /20. Viene utilizzato per creare l'intervallo di indirizzi IP primari della subnet per i nodi. Se omesso, GKE sceglie un intervallo IP disponibile nel VPC con una dimensione di /20.
  • POD_IP_RANGE: un intervallo di indirizzi IP in notazione CIDR, ad esempio 10.0.0.0/14, o la dimensione della maschera di subnet di un blocco CIDR, ad esempio /14. Viene utilizzato per creare l'intervallo di indirizzi IP secondari della subnet per i pod. Se omesso, GKE utilizza un intervallo /14 scelto in modo casuale contenente 218 indirizzi. L'intervallo scelto automaticamente viene selezionato in modo casuale da 10.0.0.0/8 (un intervallo di 224 indirizzi) e non include intervalli di indirizzi IP allocati a VM, route esistenti o intervalli allocati ad altri cluster. L'intervallo scelto automaticamente potrebbe essere in conflitto con indirizzi IP riservati, route dinamiche o route all'interno di VPC in peering con questo cluster. Se utilizzi uno di questi elementi, devi specificare --cluster-ipv4-cidr per evitare conflitti.
  • SERVICES_IP_RANGE: un intervallo di indirizzi IP in notazione CIDR, ad esempio 10.4.0.0/19, o la dimensione della maschera di subnet di un blocco CIDR, ad esempio /19. Viene utilizzato per creare l'intervallo di indirizzi IP secondari della subnet per i servizi. Se omesso, GKE utilizza /20, le dimensioni predefinite dell'intervallo di indirizzi IP dei servizi.

Console

Non puoi creare un cluster e una subnet contemporaneamente utilizzando la consoleGoogle Cloud . In alternativa, prima crea una subnet, poi crea il cluster in una subnet esistente.

API

Per creare un cluster nativo di VPC, definisci un oggetto IPAllocationPolicy nella risorsa cluster:

{
  "name": CLUSTER_NAME,
  "description": DESCRIPTION,
  ...
  "ipAllocationPolicy": {
    "useIpAliases": true,
    "createSubnetwork": true,
    "subnetworkName": SUBNET_NAME
  },
  ...
}

Il campo createSubnetwork crea e esegue automaticamente il provisioning di una subnet per il cluster. Il campo subnetworkName è facoltativo; se viene lasciato vuoto, viene scelto automaticamente un nome per la subnet.

Dopo aver creato il cluster, puoi modificare l'accesso al piano di controllo del cluster. Per saperne di più, consulta Personalizzare l'isolamento di rete in GKE.

Crea un cluster in una subnet esistente

Le istruzioni riportate di seguito mostrano come creare un cluster GKE nativo VPC in una subnet esistente con il metodo di assegnazione dell'intervallo secondario che preferisci.

gcloud

  • Per utilizzare un metodo di assegnazione dell'intervallo secondario gestito da GKE, esegui il seguente comando:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-ip-alias \
        --subnetwork=SUBNET_NAME \
        --cluster-ipv4-cidr=POD_IP_RANGE \
        --services-ipv4-cidr=SERVICES_IP_RANGE
    
  • Per utilizzare un metodo di assegnazione dell'intervallo secondario gestito dall'utente, esegui questo comando:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-ip-alias \
        --subnetwork=SUBNET_NAME \
        --cluster-secondary-range-name=SECONDARY_RANGE_PODS \
        --services-secondary-range-name=SECONDARY_RANGE_SERVICES
    

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster GKE.
  • COMPUTE_LOCATION: la posizione di Compute Engine per il cluster.
  • SUBNET_NAME: il nome di una subnet esistente. L'intervallo di indirizzi IP primari della subnet viene utilizzato per i nodi. La subnet deve esistere nella stessa regione utilizzata dal cluster. Se omessa, GKE tenta di utilizzare una subnet nella rete VPC default nella regione del cluster.
  • Se il metodo di assegnazione dell'intervallo secondario è gestito da GKE:
    • POD_IP_RANGE: un intervallo di indirizzi IP in notazione CIDR, ad esempio 10.0.0.0/14, o la dimensione della maschera di subnet di un blocco CIDR, ad esempio /14. Viene utilizzato per creare l'intervallo di indirizzi IP secondari della subnet per i pod. Se ometti l'opzione --cluster-ipv4-cidr, GKE sceglie automaticamente un intervallo /14 (218 indirizzi). L'intervallo scelto automaticamente viene selezionato in modo casuale da 10.0.0.0/8 (un intervallo di 224 indirizzi) e non includerà intervalli di indirizzi IP allocati a VM, route esistenti o intervalli allocati ad altri cluster. L'intervallo scelto automaticamente potrebbe essere in conflitto con indirizzi IP riservati, route dinamiche o route all'interno dei VPC in peering con questo cluster. Se utilizzi uno di questi, devi specificare --cluster-ipv4-cidr per evitare conflitti.
    • SERVICES_IP_RANGE: un intervallo di indirizzi IP in notazione CIDR (ad esempio, 10.4.0.0/19) o la dimensione della subnet mask di un blocco CIDR (ad esempio, /19). Questo valore viene utilizzato per creare l'intervallo di indirizzi IP secondario della subnet per i servizi.
  • Se il metodo di assegnazione dell'intervallo secondario è gestito dall'utente:
    • SECONDARY_RANGE_PODS: il nome di un intervallo di indirizzi IP secondari esistente nel SUBNET_NAME specificato. GKE utilizza l'intero intervallo di indirizzi IP secondari della subnet per i pod del cluster.
    • SECONDARY_RANGE_SERVICES: il nome di un intervallo di indirizzi IP secondari esistente in SUBNET_NAME.

Console

  1. Nella console Google Cloud , vai alla pagina Crea un cluster Autopilot.

    Vai a Crea un cluster Autopilot

    Puoi completare questa attività anche creando un cluster standard.

  2. Nel riquadro di navigazione, in Cluster, fai clic su Networking.
  3. In Accesso al control plane, configura l'accesso agli endpoint del control plane.
  4. Nella sezione Networking del cluster, seleziona un VPC nell'elenco a discesa Rete.
  5. Nell'elenco a discesa Subnet nodo, seleziona una subnet per il cluster.
  6. Assicurati che la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias) sia selezionata.
  7. Seleziona la casella di controllo Crea automaticamente intervalli secondari se vuoi che il metodo di assegnazione dell'intervallo secondario sia gestito da GKE. Deseleziona questa casella di controllo se hai già creato intervalli secondari per la subnet scelta e vuoi che il metodo di assegnazione degli intervalli secondari sia gestito dall'utente.
  8. Nel campo Intervallo di indirizzi pod, inserisci un intervallo di pod, ad esempio 10.0.0.0/14.
  9. Nel campo Intervallo di indirizzi di emergenza, inserisci un intervallo di emergenza, ad esempio 10.4.0.0/19.
  10. Configura il cluster.
  11. Fai clic su Crea.

Terraform

Puoi creare un cluster nativo di VPC con Terraform utilizzando un modulo Terraform.

Ad esempio, puoi aggiungere il seguente blocco alla configurazione Terraform:

module