Un servizio di gestione crea, aggiorna ed elimina i cluster GKE su AWS. Questo argomento spiega come creare un servizio di gestione all'interno di un Amazon Virtual Private Cloud (VPC) AWS dedicato. Se hai già un VPC, consulta Integrazione con l'infrastruttura esistente invece.
Prima di iniziare
Prima di iniziare a utilizzare GKE su AWS, assicurati di aver eseguito le seguenti attività:
- Completa i prerequisiti.
-
Esegui l'autenticazione con Google Cloud CLI.
gcloud auth login && \ gcloud auth application-default login
Valori necessari
Per completare questo argomento, devi disporre di quanto segue dai prerequisiti:
- ARN o alias delle chiavi KMS
- Google Cloud Chiavi degli account di servizio
- Google Cloud Progetto
- Gli strumenti a riga di comando
aws,terraformeanthos-gkeinstallati e configurati. - La regione AWS e le zone di disponibilità in cui GKE su AWS crea il cluster di gestione.
Configura il servizio di gestione
Configura il servizio di gestione GKE su AWS con un file YAML. Il file è simile a una configurazione di risorse personalizzate di Kubernetes, ma non è una rappresentazione di una risorsa.
Apri un terminale sul computer su cui hai installato e configurato gli strumenti a riga di comando
aws,terraformeanthos-gke.Crea una directory vuota per la configurazione di GKE su AWS e passa a questa directory. La documentazione di GKE su AWS utilizza
anthos-awscome directory di configurazione di esempio.mkdir anthos-aws cd anthos-awsCrea un file denominato
anthos-gke.yamlin un editor di testo. Incolla i seguenti contenuti nel file.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 region: AWS_REGION authentication: awsIAM: adminIdentityARNs: - ADMIN_AWS_IAM_ARN kmsKeyARN: KMS_KEY_ARN databaseEncryption: kmsKeyARN: DATABASE_KMS_KEY_ARN googleCloud: projectID: GCP_PROJECT_ID serviceAccountKeys: managementService: MANAGEMENT_KEY_PATH connectAgent: HUB_KEY_PATH node: NODE_KEY_PATH dedicatedVPC: vpcCIDRBlock: VPC_CIDR_BLOCK availabilityZones: - ZONE_1 - ZONE_2 - ZONE_3 privateSubnetCIDRBlocks: - PRIVATE_CIDR_BLOCK_1 - PRIVATE_CIDR_BLOCK_2 - PRIVATE_CIDR_BLOCK_3 publicSubnetCIDRBlocks: - PUBLIC_CIDR_BLOCK_1 - PUBLIC_CIDR_BLOCK_2 - PUBLIC_CIDR_BLOCK_3 # Optional bastionHost: allowedSSHCIDRBlocks: - SSH_CIDR_BLOCK proxy: PROXY_JSON_FILE # optionalSostituisci i seguenti valori:
AWS_REGION con la regione AWS in cui eseguire il cluster.
ADMIN_AWS_IAM_ARN con l'Amazon Resource Name dell'utente con le autorizzazioni AWS IAM per creare un servizio di gestione. Per ottenere l'ARN dell'utente autenticato nello strumento
aws, eseguiaws sts get-caller-identity.KMS_KEY_ARN con l'Amazon Resource Name della chiave AWS KMS o dell'alias della chiave KMS che protegge i dati del servizio di gestione durante la creazione. Ad esempio,
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. Se non hai l'ARN, eseguiaws kms list-keysper recuperare un elenco di ARN.DATABASE_KMS_KEY_ARN con l'Amazon Resource Name della chiave AWS KMS o dell'alias della chiave che protegge i database
etcddel servizio di gestione, ad esempioarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.GCP_PROJECT_ID con l' Google Cloud ID progetto che ospita l'ambiente GKE su AWS.
MANAGEMENT_KEY_PATH con il percorso della chiave dell'account di servizio di gestione.Google Cloud
HUB_KEY_PATH con il percorso della chiave dell'account di servizio Connect. Google Cloud
NODE_KEY_PATH con il percorso della chiave dell'account di servizio dei nodi GKE su AWS.
VPC_CIDR_BLOCK con l'intervallo CIDR totale di indirizzi IP per il VPC AWS creato da
anthos-gke. Ad esempio,10.0.0.0/16. Per saperne di più, consulta Nozioni di base su VPC e subnet nella documentazione di AWS.ZONE_1, ZONE_2 e ZONE_3 con le zone di disponibilità di AWS EC2 in cui vuoi creare nodi e piani di controllo. GKE su AWS crea subnet in queste zone. Quando utilizzi
anthos-gkeper generare la configurazione di un cluster utente, GKE su AWS crea piani di controllo e pool di nodi in queste zone di disponibilità, ad esempious-east-1a.
Se vuoi utilizzareanthos-gkeper creare cluster utente in una sola zona, puoi rimuovere ZONE_2 e ZONE_3.PRIVATE_CIDR_BLOCK_1, PRIVATE_CIDR_BLOCK_2, e PRIVATE_CIDR_BLOCK_3, con il blocco CIDR per la subnet privata. I componenti GKE su AWS, come il servizio di gestione, vengono eseguiti nella subnet privata. Questa subnet deve essere compresa nell'intervallo CIDR del VPC specificato in
vpcCIDRBlock. Ti serve una subnet per ogni zona di disponibilità, ad esempio10.0.1.0/24.PUBLIC_CIDR_BLOCK_1, PUBLIC_CIDR_BLOCK_2 e PUBLIC_CIDR_BLOCK_3 con i blocchi CIDR per la subnet pubblica. Ti serve una subnet per ogni zona di disponibilità. La subnet pubblica espone i servizi del cluster, come i bilanciatori del carico, ai gruppi di sicurezza e agli intervelli di indirizzi specificati negli ACL di rete e nei gruppi di sicurezzaAWS, ad esempio
10.0.100.0/24.SSH_CIDR_BLOCK con il blocco CIDR che consente l'SSH in entrata a l bastion host, ad esempio
203.0.113.0/24. Se vuoi consentire l'SSH da qualsiasi indirizzo IP, utilizza0.0.0.0/0.(Facoltativo) PROXY_JSON_FILE con il percorso relativo del file di configurazione del proxy. Se non utilizzi un proxy, elimina questa riga.
Esegui
anthos-gke aws management initper generare un fileanthos-gke.status.yamlcon configurazione aggiuntiva. Il comandoinitconvalida anche l'oggettoAWSManagementServicenel fileanthos-gke.yaml.anthos-gke aws management initEsegui
anthos-gke aws management applyper creare il servizio di gestione su AWS.anthos-gke aws management applyIl completamento del comando
anthos-gke aws management applypotrebbe richiedere fino a dieci minuti. Al termine del comando, il servizio di gestione viene eseguito su AWS.
Campi facoltativi
Il file anthos-gke.yaml riportato sopra mostra un insieme tipico di campi di cui la maggior parte dei clienti avrà bisogno. La configurazione in anthos-gke.yaml supporta anche una serie di campi facoltativi. Questi includono:
- spec.bootstrapS3Bucket per specificare un bucket AWS S3 per i dati di configurazione di GKE su AWS
- spec.tags per taggare le risorse AWS correlate al cluster
- spec.securityGroupIDs per assegnare ID di gruppi di sicurezza aggiuntivi al cluster di gestione
- spec.*Volume e i relativi sotto-campi volumeType, iops e kmsKeyARN per ottimizzare i parametri del volume EBS
- spec.terraform.stateGCSBucket per specificare un bucket di Google Cloud Service per i dati di configurazione di Terraform
Per saperne di più su tutti i campi supportati in anthos-gke.yaml, consulta il
riferimento al servizio di gestione AWS.
Connettiti al servizio di gestione
Poi, utilizza anthos-gke per connetterti ed eseguire l'autenticazione al servizio di gestione GKE su AWS.
Quando crei un servizio gestito utilizzando le impostazioni predefinite, il piano di controllo ha un indirizzo IP privato non accessibile dall'esterno del VPC AWS. Puoi accedere al servizio di gestione in uno dei tre modi seguenti:
- Tramite il servizio AWS Direct Connect di Amazon
- Tramite un bastion host che esegue il proxy delle connessioni tra internet e le tue subnet GKE su AWS
- Tramite una VPN
Quando crei un servizio di gestione in un VPC dedicato, GKE su AWS crea automaticamente un bastion host in una subnet pubblica. Se ti connetti al servizio di gestione tramite una VPN o AWS Direct Connect, questo bastion host non è necessario. In caso contrario, per connetterti al servizio di gestione tramite il bastion host, segui questi passaggi:
Utilizza lo strumento
terraformper generare lo script che apre un tunnel SSH al bastion host. Scegli la tua versione di Terraform, quindi esegui i seguenti comandi:Terraform 0.12, 0.13
terraform output bastion_tunnel > bastion-tunnel.sh chmod 755 bastion-tunnel.shTerraform 0.14.3+
terraform output -raw bastion_tunnel > bastion-tunnel.sh chmod 755 bastion-tunnel.shTerraform crea lo script
bastion-tunnel.shche fa riferimento alla chiave SSH del bastion host in~/.ssh/anthos-gke.Per aprire il tunnel, esegui lo script
bastion-tunnel.sh. Il tunnel inoltra dalocalhost:8118al bastion host.Per aprire un tunnel al bastion host, esegui il seguente comando:
./bastion-tunnel.sh -N -4I messaggi del tunnel SSH vengono visualizzati in questa finestra. Quando sei pronto per chiudere la connessione, interrompi il processo utilizzando Control+C o chiudendo la finestra.
Apri un nuovo terminale e cambia directory nella directory con la configurazione di GKE su AWS.
Genera un file
kubeconfigper l'autenticazione. Utilizzaanthos-gkeper aggiungere le credenziali alla configurazione memorizzata in~/.kube/config.anthos-gke aws management get-credentialsVerifica di poter connetterti al servizio di gestione con
kubectl.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-infoL'output include l'URL del server API del servizio di gestione.
Passaggi successivi
- Crea un cluster utente.
- Utilizza un proxy con GKE su AWS.
- Modifica la configurazione
kubectlper connetterti a GKE su AWS con meno opzioni della riga di comando.