Utilizzo di un proxy HTTP

Questo documento mostra come instradare il traffico da GKE su Azure attraverso un proxy HTTP/HTTPS. Puoi specificare la configurazione del proxy quando crei un cluster.

Panoramica

GKE su Azure può instradare il traffico internet in uscita tramite un proxy per i seguenti motivi:

  • Per registrare i cluster con Google Cloud tramite Connetti
  • a eseguire l'agente Connect.
  • scaricare immagini da Container Registry

Limitazioni

  • I campi httpProxy e httpsProxy non supportano gli URL che iniziano con https://. Devi utilizzare http://. Le richieste alla porta 443 utilizzano HTTPS.
  • Devi impostare i valori per httpProxy, httpsProxy e noProxy.
  • La configurazione del proxy di un cluster, ovvero l'ID gruppo di risorse e l'ID secret, è immutabile. Devi creare un nuovo cluster e un nuovo pool di nodi per aggiornare questi valori.
  • Potrebbe essere necessario aggiungere altri domini, IP o CIDR al campo noProxy. Ti consigliamo di aggiungere i CIDR della subnet dei piani di controllo del cluster (il CIDR dell'indirizzo del pod e dell'indirizzo del servizio viene aggiunto per impostazione predefinita).

Prerequisiti

Questa sezione descrive i prerequisiti da applicare prima di utilizzare un proxy.

Configurazione di Azure Key Vault

GKE su Azure archivia le informazioni di configurazione del proxy in Azure Key Vault. Per configurare un proxy con GKE su Azure, devi disporre delle autorizzazioni per creare un secret in un vault. L'insieme delle credenziali delle chiavi deve essere accessibile dalla VNet del cluster.

Lista consentita proxy

Affinché GKE su Azure possa connettersi ai servizi Google Cloud, il server proxy deve consentire il traffico verso domini Google e Microsoft specifici.

.azure.com
.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com

Sostituisci GCP_LOCATION con la regione Google Cloud in cui si trova il cluster GKE Enterprise. Specifica us-west1 o un'altra regione supportata.

Requisito del gruppo di sicurezza della rete subnet

Se utilizzi i gruppi di sicurezza di rete (NSG) per gestire il traffico verso le subnet, le tue regole NSG devono consentire il traffico TCP in uscita verso le seguenti destinazioni:

  • AzureCloud: TCP, porte 80 e 443

Per ulteriori informazioni sull'utilizzo dei tag di servizio con NSG, consulta Tag di servizio Azure.

Crea un file di configurazione del proxy

La configurazione del proxy viene archiviata in un secret di Azure Key Vault come stringa JSON. Puoi passare questa configurazione sotto forma di file allo strumento a riga di comando az. In questa sezione viene descritto come creare il file.

La tabella seguente descrive i contenuti di questo file.

Campo Descrizione Esempi Obbligatorio
httpProxy L'URL di un server proxy. Il valore deve includere un nome host/indirizzo IP e, facoltativamente, una porta, un nome utente e una password. "http://user:password@10.184.37.42:80"
"10.184.37.42"
httpsProxy Un URL del proxy per il traffico HTTPS criptato. L'URL httpProxy verrà utilizzato se httpsProxy ha un valore vuoto. "http://10.101.16.31:80"
noProxy Un elenco separato da virgole di URL da escludere dal proxy. Ogni valore può essere un indirizzo IP, un intervallo CIDR, un nome di dominio o il carattere asterix (*). I domini specificati con un punto iniziale (ad esempio ".google.com") indicano che è necessario un sottodominio. Un singolo asterisco * ignora tutte le configurazioni proxy. "1.2.3.4,10.0.0.0/16,example.com,.site.com"
  1. Per creare il file di configurazione, crea un file JSON contenente i valori per httpProxy, noProxy e le chiavi httpsProxy facoltative.

    {
      "httpProxy": "AUTHENTICATION_URL",
      "httpsProxy": "AUTHENTICATION_URL",
      "noProxy": "NO_PROXY_ADDRESSES"
    }
    

    Sostituisci quanto segue:

    • AUTHENTICATION_URL: URL codificato contenente il nome utente proxy e la password
    • NO_PROXY_ADDRESSES: elenco separato da virgole di blocchi CIDR e URL, ad esempio 10.0.0.0/16,http://example.com

    Salva il file per utilizzarlo nella sezione seguente.

  2. Crea un secret con questi dati JSON come secret in Azure Key Vault utilizzando lo strumento a riga di comando az.

    az keyvault secret set --name SECRET_NAME \
    --vault-name KEY_VAULT_NAME \
    --file PROXY_CONFIGURATION_FILE
    

    Sostituisci quanto segue:

    • SECRET_NAME: il nome del nuovo secret
    • KEY_VAULT_NAME: il nome dell'insieme delle credenziali delle chiavi
    • PROXY_CONFIGURATION_FILE: il percorso del file di configurazione proxy.

      L'output include il nome e i contenuti del secret. Ora puoi fare riferimento a questo secret quando crei un cluster.

Crea un cluster che utilizza un proxy

Per configurare GKE su Azure in modo da utilizzare un proxy HTTP per la connettività in uscita, segui questi passaggi:

Segui i passaggi in Creare un cluster e un pool di nodi e passare i flag --proxy-resource-group-id e --proxy-secret-id.

gcloud container azure clusters create CLUSTER_NAME \
  --proxy-resource-group-id=PROXY_RESOURCE_GROUP_ID \
  --proxy-secret-id=PROXY_SECRET_ID
    ...

Sostituisci quanto segue:

  • CLUSTER_NAME: nome del cluster
  • PROXY_RESOURCE_GROUP_ID: il gruppo di risorse che ospita il cluster
  • PROXY_SECRET_ID: l'ID del secret che contiene la configurazione proxy, ad esempio https://VAULT_NAME.vault.azure.net/secrets/SECRET_NAME/SECRET_VERSION

Passaggi successivi