Questo documento mostra come instradare il traffico da GKE su AWS tramite un proxy HTTP/HTTPS. Puoi specificare la configurazione del proxy quando crei un cluster.
Panoramica
GKE su AWS 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
ehttpsProxy
non supportano gli URL che iniziano conhttps://
. Devi utilizzarehttp://
. Le richieste alla porta 443 utilizzano HTTPS. - Devi impostare i valori per
httpProxy
,httpsProxy
enoProxy
. - Potrebbe essere necessario aggiungere altri domini, IP o CIDR al campo
noProxy
. Ti consigliamo di aggiungere l'intervallo IP VPC. A partire dalla versione 1.22 di Google Kubernetes Engine, GKE su AWS aggiunge automaticamente il CIDR degli indirizzi dei pod e degli indirizzi di servizio.
Prerequisiti
Questa sezione descrive i prerequisiti da applicare prima di utilizzare un proxy.
Abilita endpoint VPC
Prima di configurare un proxy, devi creare endpoint VPC per l'installazione di GKE su AWS.
Gli endpoint VPC consentono alle risorse nelle subnet private di accedere ai servizi AWS senza accesso a internet pubblico.
Nella tabella seguente sono elencati i servizi AWS per i quali GKE su AWS richiede endpoint VPC, insieme al tipo di endpoint e ai gruppi di sicurezza che richiedono l'accesso all'endpoint.
Servizio | Tipo di endpoint | Gruppi di sicurezza |
---|---|---|
Scalabilità automatica | Interfaccia | Piano di controllo, pool di nodi |
EC2 | Interfaccia | Piano di controllo, pool di nodi |
EFS | Interfaccia | Piano di controllo |
Bilanciamento del carico | Interfaccia | Piano di controllo, pool di nodi |
Servizio di gestione chiavi | Interfaccia | Piano di controllo, pool di nodi |
S3 | Gateway | Piano di controllo, pool di nodi |
Secret Manager | Interfaccia | Piano di controllo, pool di nodi |
Servizio token di sicurezza (STS) | Interfaccia | Piano di controllo, pool di nodi |
Puoi creare endpoint dalla console VPC AWS. Le opzioni impostate durante la creazione degli endpoint VPC dipendono dalla configurazione del VPC.
Definisci un gruppo di sicurezza
GKE su AWS deve essere in grado di connettersi al server proxy per scaricare i componenti software. Crea o individua un gruppo di sicurezza AWS che consenta le connessioni in uscita verso il server proxy. Il gruppo di sicurezza deve consentire l'accesso in uscita dal piano di controllo e i gruppi di sicurezza dei pool di nodi all'indirizzo proxy e alla porta. Salva l'ID di questo gruppo di sicurezza, ad esempio sg-12345678
.
Tipo | Protocollo | Da porta | Trasferimento | Indirizzo |
---|---|---|---|---|
In uscita | TCP | Porta proxy | Porta proxy | Gruppo di sicurezza proxy |
Lista consentita proxy
Affinché GKE su AWS possa connettersi ai servizi Google Cloud, il server proxy deve consentire il traffico ai seguenti domini.
.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.
Aggiornamento dei ruoli AWS IAM
Affinché GKE su AWS possa leggere la configurazione del proxy da AWS Secret Manager, devi aggiungere secretsmanager:GetSecretValue
al ruolo del piano di controllo e al ruolo del pool di nodi del cluster.
Per aggiungere questa autorizzazione, aggiungila al criterio del piano di controllo e del pool di nodi. Per ulteriori informazioni, consulta Modificare i criteri IAM.
Crea un file di configurazione del proxy
La configurazione del proxy viene archiviata in un secret di AWS Secrets Manager sotto forma di stringa JSON.
Puoi passare questa configurazione sotto forma di file allo strumento a riga di comando aws
. 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" |
Sì |
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"
|
Sì |
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" |
Sì |
Per creare il file di configurazione, crea un file JSON contenente i valori per
httpProxy
,noProxy
e le chiavihttpsProxy
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 passwordNO_PROXY_ADDRESSES
: elenco separato da virgole di blocchi CIDR e URL, ad esempio10.0.0.0/16,http://example.com
Salva il file per utilizzarlo nella sezione seguente.
Crea un secret con questi dati JSON come secret in AWS Secret Manager utilizzando lo strumento a riga di comando
aws
.aws secretsmanager create-secret \ --name SECRET_NAME \ --secret-string file://PROXY_CONFIGURATION_FILE
Sostituisci quanto segue:
SECRET_NAME
: il nome del nuovo secretPROXY_CONFIGURATION_FILE
: il percorso del file di configurazione proxy.
L'output include il nome e i contenuti della risorsa Amazon (ARN) del secret. Ora puoi fare riferimento a questo secret quando crei un cluster.
Crea un cluster che utilizza un proxy
Per configurare GKE su AWS per l'utilizzo di un proxy HTTP per la connettività in uscita, segui questi passaggi:
Segui i passaggi descritti in
Creare un cluster
e passa i flag proxy-secret-arn
e proxy-secret-version-id
.
gcloud container aws clusters create CLUSTER_NAME \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION \
Sostituisci quanto segue:
CLUSTER_NAME
: nome del clusterPROXY_SECRET_ARN
: l'ARN del secret che contiene le impostazioni proxy, ad esempioarn:aws::secretsmanager:us-east-2:111122223333:secret:example/ExampleSecret-jiObOV
PROXY_SECRET_VERSION
: l'ID versione del secret, ad esempioEXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Aggiorna configurazione proxy
Puoi aggiornare la configurazione del proxy per un piano di controllo del cluster o un pool di nodi. Per aggiornare l'ARN della configurazione del proxy, devi prima aggiornare il ruolo AWS IAM del piano di controllo o del pool di nodi.
Aggiornamento dei ruoli AWS IAM
Prima di modificare l'ARN in cui è archiviata la configurazione proxy, devi confermare che il ruolo del piano di controllo e il ruolo del pool di nodi del cluster abbiano accesso in lettura all'ARN del secret. Se l'ambito dell'istruzione IAM con l'autorizzazione secretsmanager:GetSecretValue
è limitato ad ARN delle risorse specifici, aggiungi il nuovo ARN del secret all'elenco prima di aggiornare la configurazione del proxy.
Aggiorna la configurazione del proxy del cluster
Per aggiornare la configurazione del proxy del cluster, utilizza Google Cloud CLI.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION
Sostituisci quanto segue:
CLUSTER_NAME
: nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il clusterPROXY_SECRET_ARN
: l'ARN del secret che contiene le impostazioni proxyPROXY_SECRET_VERSION
: l'ID versione del secret, ad esempioEXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Aggiorna la configurazione del proxy del pool di nodi
Per aggiornare la configurazione del proxy del pool di nodi, utilizza Google Cloud CLI.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION
Sostituisci quanto segue:
NODE_POOL_NAME
: nome del pool di nodiCLUSTER_NAME
: nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il clusterPROXY_SECRET_ARN
: l'ARN del secret che contiene le impostazioni proxyPROXY_SECRET_VERSION
: l'ID versione del secret, ad esempioEXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Rimuovi configurazione proxy
Puoi rimuovere la configurazione del proxy dal piano di controllo del cluster o dai pool di nodi. Queste operazioni sono indipendenti. La rimozione della configurazione dal piano di controllo non ne comporta la rimozione dai pool di nodi del cluster.
Rimuovi la configurazione del proxy del piano di controllo
Per rimuovere la configurazione del proxy del piano di controllo del cluster, utilizza Google Cloud CLI.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Sostituisci quanto segue:
CLUSTER_NAME
: nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il cluster, ad esempious-west1
Rimuovi la configurazione del proxy del pool di nodi
Per rimuovere la configurazione del proxy da un pool di nodi, utilizza Google Cloud CLI.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Sostituisci quanto segue:
NODE_POOL_NAME
: nome del pool di nodiCLUSTER_NAME
: nome del clusterGOOGLE_CLOUD_LOCATION
: la regione Google Cloud supportata che gestisce il cluster, ad esempious-west1
Passaggi successivi
- Leggi ulteriori informazioni su come creare un cluster.