Crea un cluster nativo di VPC


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

Per scoprire di più sui vantaggi e sui requisiti dei cluster nativi VPC, consulta la panoramica dei cluster nativi 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
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Limitazioni

  • Non puoi convertire un cluster nativo di VPC in un cluster basato su route e non puoi convertire un cluster basato su route in un cluster nativo di VPC.
  • 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 esterne al cluster, ma all'interno della rete e della regione VPC 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 secondario della subnet senza mettere il cluster in uno stato instabile. Tuttavia, puoi creare altri intervalli di indirizzi IP dei pod utilizzando CIDR multi-pod non contigui.

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 il 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).
  • Creare contemporaneamente un cluster dual-stack e una sottorete dual-stack (disponibile nei cluster Autopilot versione 1.25 o successive e nei cluster standard versione 1.24 o successive).

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

Creare contemporaneamente un cluster e una subnet

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 solo comando.

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

gcloud

Per creare contemporaneamente un cluster e una subnet nativi della VPC, esegui il seguente 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 Compute Engine per il cluster.
  • SUBNET_NAME: il nome della subnet da creare. La regione della sottorete è la stessa del cluster (o della regione contenente il cluster zonale). Utilizza una stringa vuota (name="") se vuoi che sia GKE a generare un nome per te.
  • NODE_IP_RANGE: un intervallo di indirizzi IP in notazione CIDR, come 10.5.0.0/20, o la dimensione della maschera di sottorete di un blocco CIDR, come /20. Viene utilizzato per creare l'intervallo di indirizzi IP principale 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, come 10.0.0.0/14, o la dimensione della maschera di sottorete di un blocco CIDR, come /14. Viene utilizzato per creare l'intervallo di indirizzi IP secondario 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 gli intervalli di indirizzi IP allocati alle VM, ai percorsi esistenti o agli intervalli allocati ad altri cluster. L'intervallo scelto automaticamente potrebbe essere in conflitto con indirizzi IP riservati, route dinamici o route all'interno delle VPC in peering con questo cluster. Se utilizzi uno di questi valori, 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 sottorete di un blocco CIDR, ad esempio /19. Viene utilizzato per creare l'intervallo di indirizzi IP secondario della subnet per i servizi. Se omesso, GKE utilizza /20, la dimensione predefinita dell'intervallo di indirizzi IP dei servizi.

Console

Non puoi creare contemporaneamente un cluster e una subnet utilizzando la console Google Cloud. In alternativa, crea una subnet, quindi crea il cluster in una subnet esistente.

API

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

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

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

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

Creare 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 di gestione utente, esegui il seguente 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 Compute Engine per il cluster.
  • SUBNET_NAME: il nome di una subnet esistente. L'intervallo di indirizzi IP primario della subnet viene utilizzato per i nodi. La subnet deve esistere nella stessa regione utilizzata dal cluster. Se omesso, 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 sottorete di un blocco CIDR, ad esempio /14. Viene utilizzato per creare l'intervallo di indirizzi IP secondario 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 include gli intervalli di indirizzi IP allocati alle VM, ai percorsi esistenti o agli 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 valori, 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). 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 secondario 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 secondario esistente in SUBNET_NAME.

Console

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea, quindi nella sezione Standard o Autopilot fai clic su Configura.

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

  4. In Accesso al control plane, configura l'accesso agli endpoint del control plane.

  5. Nella sezione Networking del cluster, seleziona una VPC nell'elenco a discesa Rete.

  6. Nell'elenco a discesa Subnet del nodo, seleziona una subnet per il cluster.

  7. Assicurati che la casella di controllo Abilita routing del traffico VPC nativo (mediante IP alias) sia selezionata.

  8. 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.

  9. Nel campo Intervallo di indirizzi pod, inserisci un intervallo di pod, ad esempio 10.0.0.0/14.

  10. Nel campo Intervallo di indirizzi di servizio, inserisci un intervallo di servizi, ad esempio10.4.0.0/19.

  11. Configura il cluster.

  12. 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 di Terraform:

module "gke" {
  source  = "terraform-google-modules/kubernetes-engine/google"
  version = "~> 12.0"

  project_id        = "PROJECT_ID"
  name              = "CLUSTER_NAME"
  region            = "COMPUTE_LOCATION"
  network           = "NETWORK_NAME"
  subnetwork        = "SUBNET_NAME"
  ip_range_pods     = "SECONDARY_RANGE_PODS"
  ip_range_services = "SECONDARY_RANGE_SERVICES"
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • CLUSTER_NAME: il nome del cluster GKE.
  • COMPUTE_LOCATION: la posizione Compute Engine per il cluster. Per Terraform, la regione Compute Engine.
  • NETWORK_NAME: il nome di una rete esistente.
  • SUBNET_NAME: il nome di una subnet esistente. L'intervallo di indirizzi IP principale della sottorete viene utilizzato per i nodi. La subnet deve esistere nella stessa regione utilizzata dal cluster.
  • SECONDARY_RANGE_PODS: il nome di un intervallo di indirizzi IP secondario esistente in SUBNET_NAME.
  • SECONDARY_RANGE_SERVICES: il nome di un intervallo di indirizzi IP secondario esistente in SUBNET_NAME.

API

Quando crei un cluster nativo di VPC, definisci un oggetto IPAllocationPolicy. Puoi fare riferimento a intervalli di indirizzi IP secondari della subnet esistenti o specificare blocchi CIDR. Fai riferimento agli intervalli di indirizzi IP secondari delle subnet esistenti per creare un cluster il cui metodo di assegnazione dell'intervallo secondario è gestito dall'utente. Fornisci blocchi CIDR se vuoi che il metodo di assegnazione dell'intervallo sia gestito da GKE.

{
  "name": CLUSTER_NAME,
  "description": DESCRIPTION,
  ...
  "ipAllocationPolicy": {
    "useIpAliases": true,
    "clusterIpv4CidrBlock"      : string,
    "servicesIpv4CidrBlock"     : string,
    "clusterSecondaryRangeName" : string,
    "servicesSecondaryRangeName": string,

  },
  ...
}

Questo comando include i seguenti valori:

  • "clusterIpv4CidrBlock": l'intervallo CIDR per i pod. Questo determina la dimensione dell'intervallo secondario per i pod e può essere in notazione CIDR, ad esempio 10.0.0.0/14. Uno spazio vuoto con le dimensioni specificate viene scelto dallo spazio disponibile nella VPC. Se viene lasciato vuoto, viene trovato e creato un intervallo valido con una dimensione predefinita.
  • "servicesIpv4CidrBlock": l'intervallo CIDR per i servizi. Consulta la descrizione di "clusterIpv4CidrBlock".
  • "clusterSecondaryRangeName": il nome dell'intervallo secondario per i pod. L'intervallo secondario deve già esistere e appartenere alla sottorete associata al cluster.
  • "serviceSecondaryRangeName": il nome dell'intervallo secondario per i servizi. L'intervallo secondario deve già esistere e appartenere alla sottorete associata al cluster.

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 e seleziona l'intervallo di indirizzi IP del control plane

Per impostazione predefinita, i cluster nella versione 1.29 o successive utilizzano l'intervallo della subnet principale per eseguire il provisioning dell'indirizzo IP interno assegnato all'endpoint del control plane. Puoi eseguire l'override di questa impostazione predefinita selezionando un intervallo di subnet diverso solo al momento della creazione del cluster.

Le sezioni riportate di seguito mostrano come creare un cluster e ignorare l'intervallo della sottorete.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --enable-private-nodes \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --location=COMPUTE_LOCATION

Dove:

  • Il flag enable-private-nodes è facoltativo e indica a GKE di creare il cluster con nodi privati.
  • Il flag private-endpoint-subnetwork definisce l'intervallo di indirizzi IP dell'endpoint interno del control plane. Puoi utilizzare il flag master-ipv4-cidr instead of private-endpoint-subnetwork per eseguire il provisioning dell'indirizzo IP interno per il control plane. Per scegliere il flag da utilizzare, prendi in considerazione le seguenti configurazioni:
    • Se crei un cluster con il flag enable-private-nodes, i flag master-ipv4-cidr e private-endpoint-subnetwork sono facoltativi.
    • Se utilizzi il flag private-endpoint-subnetwork, GKE provisiona l'endpoint interno del control plane con un indirizzo IP dell'intervallo definito.
    • Se utilizzi il flag master-ipv4-cidr, GKE crea una nuova sottorete dai valori che fornisci. GKE provisiona l'endpoint interno del control plane con un indirizzo IP di questo nuovo intervallo.
    • Se ometti i flag private-endpoint-subnetwork e master-ipv4-cidr, GKE esegue il provisioning dell'endpoint interno del piano di controllo con un indirizzo IP della sottorete del cluster secondario.

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster GKE.
  • SUBNET_NAME: il nome di una subnet esistente per eseguire il provisioning dell'indirizzo IP interno.
  • COMPUTE_LOCATION: la posizione Compute Engine per il cluster.

GKE crea un cluster con Private Service Connect. Dopo aver creato il cluster, puoi modificare l'accesso al piano di controllo del cluster. Per scoprire di più, consulta Personalizzare l'isolamento di rete in GKE.

Console

Per assegnare una subnet al piano di controllo di un nuovo cluster, devi prima aggiungere una subnet. Completa i seguenti passaggi:

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Nella sezione Standard o Autopilot, fai clic su Configura.

  4. In Nome, inserisci il nome del cluster.

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

  6. In Accesso al control plane, configura l'accesso agli endpoint del control plane.

  7. Nella sezione Networking del cluster, seleziona la casella di controllo Esegui l'override della subnet predefinita degli endpoint privati del control plane.

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

  9. Fai clic su Fine. Aggiungi altre emittenti autorizzate, se necessario.

Creare un cluster con la rete dual-stack

Puoi creare un cluster con la rete a doppio stack IPv4/IPv6 su una subnet a doppio stack nuova o esistente. La subnet dual-stack è disponibile nei cluster Autopilot versione 1.25 o successive e nei cluster standard versione 1.24 o successive. La subnet dual-stack non è supportata con i pool di nodi Windows Server.

Prima di configurare i cluster dual-stack, ti consigliamo di completare le seguenti azioni:

In questa sezione, crea prima una subnet a stack doppio e utilizzala per creare un cluster.

  1. Per creare una subnet dual-stack, esegui il seguente comando:

    gcloud compute networks subnets create SUBNET_NAME \
        --stack-type=ipv4-ipv6 \
        --ipv6-access-type=ACCESS_TYPE \
        --network=NETWORK_NAME \
        --range=PRIMARY_RANGE \
        --region=COMPUTE_REGION
    

    Sostituisci quanto segue:

    • SUBNET_NAME: il nome della subnet che scegli.
    • ACCESS_TYPE: la raggiungibilità della rete internet pubblica. Utilizza INTERNAL per gli indirizzi IPv6 interni o EXTERNAL per gli indirizzi IPv6 esterni. Se --ipv6-access-type non è specificato, il tipo di accesso predefinito è EXTERNAL.
    • NETWORK_NAME: il nome della rete che conterrà la nuova subnet. Questa rete deve soddisfare le seguenti condizioni:
    • PRIMARY_RANGE: l'intervallo di indirizzi IP IPv4 principale per la nuova subnet, in notazione CIDR. Per ulteriori informazioni, consulta Intervalli di sottoreti.
    • COMPUTE_REGION: la regione di calcolo per il cluster.
  2. Per creare un cluster con una sottorete dual-stack, utilizza gcloud CLI o la console Google Cloud:

gcloud

  • Per i cluster Autopilot, esegui il seguente comando:

      gcloud container clusters create-auto CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --network=NETWORK_NAME \
          --subnetwork=SUBNET_NAME
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del nuovo cluster Autopilot.
    • COMPUTE_LOCATION: la posizione Compute Engine per il cluster.
    • NETWORK_NAME: il nome di una rete VPC che contiene la subnet. Questa rete VPC deve essere una rete VPC in modalità personalizzata. Per maggiori informazioni, scopri come passare una rete VPC dalla modalità automatica alla modalità personalizzata.
    • SUBNET_NAME: il nome della subnet dual-stack.

      Per impostazione predefinita, i cluster GKE Autopilot sono costituiti da un cluster dual-stack quando utilizzi una subnet dual-stack. Dopo la creazione del cluster, puoi aggiornarlo in modo che sia solo IPv4.

Console

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Nella sezione Standard o Autopilot, fai clic su Configura.

  4. Configura il cluster in base alle tue esigenze.

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

  6. In Accesso al control plane, configura l'accesso agli endpoint del control plane.

  7. Nella sezione Reti di cluster, seleziona il nome della tua rete nell'elenco Rete.

  8. Nell'elenco Subnet del nodo, seleziona il nome della subnet dual-stack.

  9. Per i cluster standard, seleziona il pulsante di opzione IPv4 e IPv6 (stack doppio). Questa opzione è disponibile solo se hai selezionato una sottorete dual-stack.

    I cluster Autopilot prevedono per impostazione predefinita un cluster dual-stack quando utilizzi una sottorete dual-stack.

  10. Fai clic su Crea.

Creare contemporaneamente un cluster a stack doppio e una subnet

Puoi creare contemporaneamente una subnet e un cluster a stack doppio. GKE crea una subnet IPv6 e assegna un intervallo IPv6 primario esterno alla subnet.

Se utilizzi la VPC condivisa, non puoi creare contemporaneamente il cluster e la subnet. Un amministratore di rete nel progetto host VPC condiviso deve prima creare la subnet a doppio stack.

  • Per i cluster Autopilot, esegui il seguente comando:

    gcloud container clusters create-auto CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --network=NETWORK_NAME \
        --create-subnetwork name=SUBNET_NAME
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del nuovo cluster Autopilot.
    • COMPUTE_LOCATION: la posizione Compute Engine per il cluster.
    • NETWORK_NAME: il nome di una rete VPC che contiene la subnet. Questa rete VPC deve essere una rete VPC in modalità personalizzata che utilizza indirizzi unicast IPv6 locali univoci (ULA). Per saperne di più, scopri come passare una rete VPC dalla modalità automatica alla modalità personalizzata.
    • SUBNET_NAME: il nome della nuova subnet. GKE può creare la subnet in base ai criteri della tua organizzazione:
      • Se i criteri della tua organizzazione consentono il doppio stack e la rete è in modalità personalizzata, GKE crea una subnet a doppio stack e assegna un intervallo principale IPv6 esterno alla subnet .
      • Se i criteri dell'organizzazione non consentono il doppio stack o se la rete è in modalità automatica, GKE crea una subnet con stack singolo (IPv4).
  • Per i cluster standard, esegui il seguente comando:

    gcloud container clusters create CLUSTER_NAME \
        --enable-ip-alias \
        --stack-type=ipv4-ipv6 \
        --ipv6-access-type=ACCESS_TYPE \
        --network=NETWORK_NAME \
        --create-subnetwork name=SUBNET_NAME,range=PRIMARY_RANGE \
        --location=COMPUTE_LOCATION
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del nuovo cluster scelto.
    • ACCESS_TYPE: la raggiungibilità tramite internet pubblico. Utilizza INTERNAL per gli indirizzi IPv6 interni o EXTERNAL per quelli IPv6 esterni. Se --ipv6-access-type non è specificato, il tipo di accesso predefinito è EXTERNAL.
    • NETWORK_NAME: il nome della rete che conterrà la nuova subnet. Questa rete deve soddisfare le seguenti condizioni:
    • SUBNET_NAME: il nome della nuova subnet che scegli.
    • PRIMARY_RANGE: l'intervallo di indirizzi IPv4 principale per la nuova subnet, in notazione CIDR. Per ulteriori informazioni, consulta Intervalli di sottoreti.
    • COMPUTE_LOCATION: la posizione Compute Engine per il cluster.

Aggiorna il tipo di serie

Puoi modificare il tipo di stack di un cluster esistente o aggiornare una subnet esistente in una subnet dual-stack.

Aggiornare il tipo di stack in un cluster esistente

Prima di modificare il tipo di stack in un cluster esistente, tieni presente le seguenti limitazioni:

  • La modifica del tipo di stack è supportata nei nuovi cluster GKE che eseguono la versione 1.25 o successive. I cluster GKE di cui è stato eseguito l'upgrade dalle versioni 1.24 alle versioni 1.25 o 1.26 potrebbero generare errori di convalida durante l'attivazione della rete dual-stack. In caso di errori, contatta il team di assistenza di Google Cloud.

  • La modifica del tipo di stack è un'operazione che comporta interruzioni perché GKE riavvia i componenti sia nel piano di controllo sia nei nodi.

  • GKE rispetta i periodi di manutenzione configurati quando rielabora i nodi. Ciò significa che il tipo di stack del cluster non sarà operativo sul cluster fino al successivo periodo di manutenzione. Se preferisci non aspettare, puoi eseguire manualmente l'upgrade del pool di nodi impostando il flag --cluster-version sulla stessa versione GKE in cui è già in esecuzione il piano di controllo. Devi utilizzare gcloud CLI se utilizzi questa soluzione alternativa. Per ulteriori informazioni, consulta le limitazioni relative ai periodi di manutenzione.

  • La modifica del tipo di stack non modifica automaticamente la famiglia IP dei servizi esistenti. Si applicano le seguenti condizioni:

    • Se passi da un singolo stack a un dual stack, i servizi esistenti rimangono in single stack.
    • Se passi da un'architettura dual-stack a una monolitica, i servizi esistenti con indirizzi IPv6 entrano in uno stato di errore. Elimina il servizio e creane uno con il valore ipFamilies corretto. Per saperne di più, consulta un esempio di come configurare un deployment.

Per aggiornare un cluster nativo di VPC esistente, puoi utilizzare gcloud CLI o la console Google Cloud:

gcloud

Esegui questo comando:

  gcloud container clusters update CLUSTER_NAME \
      --stack-type=STACK_TYPE \
      --location=COMPUTE_LOCATION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster da aggiornare.
  • STACK_TYPE: il tipo di stack. Sostituisci con uno dei seguenti valori:
    • ipv4: per aggiornare un cluster a doppio stack in un cluster solo IPv4. GKE utilizza l'intervallo di indirizzi IPv4 principale della subnet del cluster.
    • ipv4-ipv6: per aggiornare un cluster IPv4 esistente a dual-stack. Puoi impostare un cluster su dual-stack solo se la sottorete sottostante supporta il dual-stack. Per scoprire di più, consulta Aggiornare una subnet esistente in una subnet dual-stack.
  • COMPUTE_LOCATION: la posizione Compute Engine per il cluster.

Console

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

    Vai a Google Kubernetes Engine

  2. Accanto al cluster che vuoi modificare, fai clic su Azioni e poi su Modifica.

  3. Nella sezione Networking, accanto a Tipo di stack, fai clic su Modifica.

  4. Nella finestra di dialogo Modifica tipo di stack, seleziona la casella di controllo del tipo di stack del cluster di cui hai bisogno.

  5. Fai clic su Salva modifiche.

Aggiorna una subnet esistente in una subnet dual-stack (disponibile nei cluster Autopilot versione 1.25 o successive e nei cluster standard versione 1.24 o successive).

Aggiornare una subnet esistente in una subnet dual-stack

Per aggiornare una subnet esistente in una subnet dual-stack, esegui il seguente comando. L'aggiornamento di una subnet non influisce sui cluster IPv4 esistenti nella subnet.

gcloud compute networks subnets update SUBNET_NAME \
    --stack-type=ipv4-ipv6 \
    --ipv6-access-type=ACCESS_TYPE \
    --region=COMPUTE_REGION

Sostituisci quanto segue:

  • SUBNET_NAME: il nome della subnet.
  • ACCESS_TYPE: la raggiungibilità della rete internet pubblica. Utilizza INTERNAL per gli indirizzi IPv6 interni o EXTERNAL per gli indirizzi IPv6 esterni. Se --ipv6-access-type non è specificato, il tipo di accesso predefinito è EXTERNAL.
  • COMPUTE_REGION: la regione di calcolo per il cluster.

Verifica gli intervalli di indirizzi IP del tipo di stack, del pod e del servizio

Dopo aver creato un cluster nativo di VPC, puoi verificare gli intervalli di pod e servizio.

gcloud

Per verificare il cluster, esegui il seguente comando:

gcloud container clusters describe CLUSTER_NAME

L'output ha un blocco ipAllocationPolicy. Il campo stackType descrive il tipo di definizione di rete. Per ogni tipo, puoi visualizzare le seguenti informazioni sulla rete:

  • Informazioni sulla rete IPv4:

    • clusterIpv4Cidr è l'intervallo secondario per i pod.
    • servicesIpv4Cidr è l'intervallo secondario per i servizi.
  • Informazioni sulla rete IPv6 (se un cluster dispone di una rete dual-stack):

    • ipv6AccessType: la raggiungibilità della rete internet pubblica. INTERNAL per gli indirizzi IPv6 interni e EXTERNAL per gli indirizzi IPv6 esterni.
    • subnetIpv6CidrBlock: l'intervallo di indirizzi IPv6 secondario per la nuova sottorete.
    • servicesIpv6CidrBlock: l'intervallo di indirizzi assegnato per i servizi IPv6 sul cluster a doppio stack.

Console

Per verificare il cluster, svolgi i seguenti passaggi:

  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.

Gli intervalli secondari vengono visualizzati nella sezione Networking:

  • L'intervallo di indirizzi del pod è l'intervallo secondario per i pod
  • L'intervallo di indirizzi dei servizi è l'intervallo secondario per i servizi

Elimina il cluster

Per eliminare il cluster, segui i passaggi descritti in Eliminare un cluster.

GKE tenta di ripulire la sottorete creata quando il cluster viene eliminato. Tuttavia, se la sottorete è in uso da altre risorse, GKE non la elimina e devi gestire autonomamente il ciclo di vita della sottorete.

Configurazione avanzata per gli indirizzi IP interni

Le sezioni seguenti mostrano come utilizzare intervalli di indirizzi IP privati non RFC 1918 e come attivare intervalli di indirizzi IP pubblici utilizzati privatamente.

Utilizzare intervalli di indirizzi IP non RFC 1918

I cluster GKE possono utilizzare intervalli di indirizzi IP non compresi negli intervalli RFC 1918 per nodi, pod e servizi. Consulta gli intervalli validi nella documentazione della rete VPC per un elenco di intervalli privati non RFC 1918 che possono essere utilizzati come indirizzi IP interni per gli intervalli di subnet.

Questa funzionalità non è supportata con i pool di nodi Windows Server.

Gli intervalli privati non RFC 1918 sono intervalli di subnet; puoi utilizzarli esclusivamente o in combinazione con intervalli di subnet RFC 1918. I nodi, i pod e i servizi continuano a utilizzare gli intervalli di subnet come descritto in Intervalli IP per i cluster nativi VPC. Se utilizzi intervalli non RFC 1918, tieni presente quanto segue:

  • Gli intervalli di subnet, anche quelli che utilizzano intervalli non RFC 1918, devono essere assegnati manualmente o da GKE prima della creazione dei nodi del cluster. Non puoi passare a intervalli di sottoreti non RFC 1918 o smettere di utilizzarli, a meno che non sostituisci il cluster.

  • I bilanciatori del carico di rete passthrough interni utilizzano solo gli indirizzi IP dell'intervallo IP principale della subnet. Per creare un bilanciatore del carico di rete passthrough interno con un indirizzo non RFC 1918, l'intervallo di indirizzi IP principale della subnet deve essere non RFC 1918.

Le destinazioni esterne al cluster potrebbero avere difficoltà a ricevere traffico da intervalli privati non RFC 1918. Ad esempio, gli intervalli privati RFC 1112 (classe E) vengono tipicamente utilizzati come indirizzi multicast. Se una destinazione al di fuori del cluster non può elaborare i pacchetti le cui origini sono indirizzi IP privati al di fuori dell'intervallo RFC 1918, puoi procedere nel seguente modo:

  • Utilizza un intervallo RFC 1918 per l'intervallo di indirizzi IP principale della sottorete. In questo modo, i nodi del cluster utilizzano indirizzi RFC 1918.
  • Assicurati che nel cluster sia in esecuzione l'agente di sdoppiamento IP e che le destinazioni non siano nell'elenco nonMasqueradeCIDRs. In questo modo, le origini dei pacchetti inviati dai pod vengono modificate (SNAT) in indirizzi dei nodi, che sono RFC 1918.

Attivare intervalli di indirizzi IP esterni utilizzati privatamente

I cluster GKE possono utilizzare privatamente determinati intervalli di indirizzi IP esterni come intervalli di indirizzi IP di subnet interni. Puoi utilizzare in privato qualsiasi indirizzo IP esterno, ad eccezione di determinati intervalli con limitazioni come descritto nella documentazione della rete VPC. Questa funzionalità non è supportata con i pool di nodi Windows Server.

Il cluster deve essere un cluster nativo di VPC per poter utilizzare intervalli di indirizzi IP esterni utilizzati privatamente. I cluster basati su route non sono supportati.

Gli intervalli esterni utilizzati privatamente sono intervalli di subnet. Puoi utilizzarli esclusivamente o in combinazione con altri intervalli di subnet che utilizzano indirizzi privati. Nodi, Pods e servizi continuano a utilizzare intervalli di subnet come descritto in Intervalli IP per i cluster nativi VPC. Tieni presente quanto segue quando riutilizzi indirizzi IP esterni in privato:

  • Quando utilizzi un intervallo di indirizzi IP esterno come intervallo di subnet, il cluster non può più comunicare con i sistemi su internet che utilizzano questo intervallo esterno. L'intervallo diventa un intervallo di indirizzi IP interni nella rete VPC del cluster.

  • Gli intervalli di subnet, anche quelli che utilizzano privatamente intervalli di indirizzi IP esterni, devono essere assegnati manualmente o da GKE prima della creazione dei nodi del cluster. Non puoi passare o interrompere l'utilizzo di indirizzi IP esterni di uso privato, a meno che non sostituisci il cluster.

Per impostazione predefinita, GKE implementa SNAT sui nodi per le destinazioni IP esterne. Se hai configurato il CIDR del pod in modo da utilizzare indirizzi IP esterni, le regole SNAT si applicano al traffico da pod a pod. Per evitare che ciò accada, hai due opzioni:

Per i cluster standard, se la versione del cluster è 1.14 o successiva, entrambe le opzioni funzioneranno. Se la versione del cluster è precedente alla 1.14, puoi utilizzare solo la seconda opzione (configurazione di ip-masq-agent).

Passaggi successivi