Questo argomento illustra come instradare il traffico dal servizio di gestione GKE su AWS e Connect tramite un proxy HTTP/HTTPS.
GKE su AWS richiede l'accesso a internet per i seguenti motivi:
- Il servizio di gestione registra i cluster di utenti con Connect.
- I cluster di utenti eseguono l'agente Connect.
- Tutti i nodi del cluster di servizi di gestione e degli utenti scaricano le immagini da Container Registry.
Puoi instradare questo traffico tramite un proxy HTTP o HTTPS. A partire da GKE on AWS 1.8, puoi configurare le impostazioni dei singoli proxy per il servizio di gestione e per ciascuno dei tuoi cluster. Per ulteriori informazioni su come modificare le impostazioni del proxy, consulta Modificare le impostazioni del proxy di un cluster.
Dichiari le impostazioni del proxy in un file JSON a cui viene fatto riferimento in
anthos-gke.yaml
.
Prerequisiti
Prima di configurare GKE su AWS per utilizzare un proxy, devi attivare gli endpoint VPC AWS, definire un gruppo di sicurezza per il proxy e consentire le connessioni in uscita a determinati Google Cloud servizi.
Per utilizzare un proxy HTTP, i cluster utente devono eseguire Kubernetes 1.17 o versioni successive.
Abilita gli 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 alla rete internet pubblica.
La tabella seguente elenca i servizi AWS per i quali GKE on AWS richiede endpoint VPC, oltre al tipo di endpoint e ai gruppi di sicurezza per ogni componente GKE on AWS che richiede l'accesso all'endpoint.
Servizio | Tipo di endpoint | Gruppi di sicurezza |
---|---|---|
Scalabilità automatica | Interfaccia | Gestione, control plane, pool di nodi |
EC2 | Interfaccia | Gestione, control plane, pool di nodi |
Bilanciamento del carico | Interfaccia | Gestione, control plane, pool di nodi |
Key Management Service | Interfaccia | Gestione, control plane, pool di nodi |
S3 | Gateway | Gestione, control plane, pool di nodi |
Security Token Service (STS) | Interfaccia | Gestione, control plane, pool di nodi |
Puoi creare endpoint dalla console VPC di AWS. Le opzioni impostate durante la creazione degli endpoint VPC dipendono dalla configurazione del VPC.
Definire un gruppo di sicurezza
I componenti GKE su AWS devono essere in grado di connettersi al server proxy. Crea o individua un gruppo di sicurezza AWS che consenta le connessioni in uscita al tuo server proxy. Il gruppo di sicurezza deve consentire l'accesso in uscita dai gruppi di sicurezza di gestione, piano di controllo e pool di nodi all'indirizzo e alla porta del proxy. Salva l'ID di questo gruppo di sicurezza
(ad esempio sg-12345678
).
Tipo | Protocollo | Dalla porta | Per la porta | Indirizzo |
---|---|---|---|---|
In uscita | TCP | Porta proxy | Porta proxy | Gruppo di sicurezza proxy |
Consenti le connessioni in uscita ai Google Cloud servizi
Affinché GKE su AWS possa connettersi ai servizi Google Cloud , il server proxy deve consentire il traffico verso i seguenti domini:
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
www.googleapis.com
gcr.io
k8s.gcr.io
EC2-REGION.ec2.archive.ubuntu.com
Sostituisci EC2-REGION con la regione AWS EC2 in cui viene eseguita l'installazione di GKE su AWS. Ad esempio,
us-west-1.ec2.archive.ubuntu.com/
.
Se utilizzi Cloud Service Mesh con Prometheus e Kiali, consenti l'accesso in uscita dai seguenti domini:
docker.io
quay.io
Creazione del file JSON di configurazione del proxy
Il file JSON di configurazione del proxy contiene un oggetto con tre
coppie chiave/valore, con i nomi delle chiavi httpProxy
, httpsProxy
e noProxy
.
I nomi utente e le password vengono criptati con la chiave KMS di AWS prima di essere applicati al server.
{
"httpProxy": "HTTP_PROXY",
"httpsProxy": "HTTPS_PROXY",
"noProxy": "NO_PROXY"
}
Sostituisci quanto segue:
- HTTP_PROXY con l'indirizzo del server proxy per instradare le richieste HTTP.
- HTTPS_PROXY con il server proxy per instradare le richieste HTTPS.
- NO_PROXY con un elenco facoltativo di IP, intervalli CIDR e domini in cui non viene utilizzato il proxy.
Per ulteriori informazioni, consulta la documentazione di riferimento sulla configurazione.
Ad esempio, la configurazione seguente utilizza un proxy all'indirizzo 10.0.0.254
ed esclude una serie di siti.
{
"httpProxy": "http://user:password@10.0.0.254:80",
"httpsProxy": "http://user:password@10.0.0.254:443",
"noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}
Aggiunta del proxy ad anthos-gke.yaml
Configura AWSManagementService seguendo questi passaggi:
Passa alla directory con la configurazione di GKE su AWS. Hai creato questa directory durante la installazione del servizio di gestione.
cd anthos-aws
Apri
anthos-gke.yaml
in un editor di testo. Aggiungi un valore perspec.proxy
come nell'esempio seguente.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 proxy: PROXY_JSON_FILE securityGroupIDs: - SECURITY_GROUP_ID ...
Sostituisci quanto segue:
- PROXY_JSON_FILE con il percorso relativo della configurazione JSON del proxy.
- SECURITY_GROUP_ID con l'ID di un gruppo di sicurezza con accesso al server proxy.
Salva il file.
Esegui
anthos-gke aws management init
per generare un fileanthos-gke.status.yaml
con una configurazione aggiuntiva. Il comandoinit
convalida anche l'oggettoAWSManagementService
nel fileanthos-gke.yaml
.anthos-gke aws management init
Esegui
anthos-gke aws management apply
per aggiornare il servizio di gestione su AWS.anthos-gke aws management apply
Poi, crea un cluster di utenti. Includi il gruppo di sicurezza del proxy in
spec.controlPlane.securityGroupIDs
espec.securityGroupIDs
diAWSCluster
eAWSNodePool
, rispettivamente. Il cluster ha quindi accesso al proxy.
Riferimento alla configurazione
Campo | Descrizione | Esempio | Obbligatorio |
---|---|---|---|
httpProxy |
Un URL del 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" |
Sì |
httpsProxy |
Un URL proxy per il traffico HTTPS criptato. L'URL httpProxy verrà utilizzato se non viene specificato httpsProxy . |
"http://user:password@10.101.16.31:80" |
No |
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 asterisco (* ). I domini specificati con un punto iniziale (ad es. ".google.com") indicano che è necessario un sottodominio. Un asterisco singolo * indica che non deve essere eseguito il proxy. |
"1.2.3.4,10.0.0.0/16,example.com,.site.com" |
No |
Passaggi successivi
Per ulteriori informazioni su come completare un'installazione di GKE su AWS, consulta quanto segue:
Se devi creare un VPC AWS dedicato, consulta Installazione di un servizio di gestione.
Se hai già un VPC AWS, consulta la sezione Integrazione con l'infrastruttura esistente.
Per informazioni su come modificare le impostazioni del proxy del cluster, consulta: