Un servizio di gestione crea, aggiorna ed elimina i cluster Anthos sui cluster AWS (GKE su AWS). Questo argomento spiega come creare un servizio di gestione all'interno di un Virtual Private Cloud (VPC) di AWS dedicato. Se hai già un VPC, consulta Integrazione con l'infrastruttura esistente.
Prima di iniziare
Prima di iniziare a utilizzare Cluster Anthos on AWS, assicurati di aver eseguito le seguenti attività:
- Completa i prerequisiti.
-
Autentica con Google Cloud CLI.
gcloud auth login && \ gcloud auth application-default login
Valori necessari
Per completare questo argomento, devi disporre dei seguenti requisiti:
- ARN o alias chiave KMS
- Chiavi account di servizio Google Cloud
- Progetto Google Cloud
- Gli strumenti a riga di comando
aws
,terraform
eanthos-gke
sono stati installati e configurati. - La regione e le zone di disponibilità AWS in cui i cluster Anthos su AWS creano il tuo cluster di gestione.
Configura il tuo servizio di gestione
Configura i tuoi cluster Anthos sul servizio di gestione AWS con un file YAML. Il file assomiglia a una configurazione di risorsa personalizzata Kubernetes, ma non è una rappresentazione di una risorsa.
Apri un terminale sul computer in cui hai installato e configurato gli strumenti a riga di comando
aws
,terraform
eanthos-gke
.Crea una directory vuota per i tuoi cluster Anthos on AWS e passa a questa directory. La documentazione relativa ai cluster Anthos su AWS utilizza
anthos-aws
come directory di configurazione di esempio.mkdir anthos-aws cd anthos-aws
Crea un file denominato
anthos-gke.yaml
in un editor di testo. Incolla i contenuti seguenti 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 # optional
Sostituisci i seguenti valori:
AWS_REGION con la regione AWS in cui eseguire il cluster.
ADMIN_AWS_IAM_ARN con il nome della risorsa Amazon dell'utente con le autorizzazioni IAM AWS 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 il nome risorsa Amazon della chiave KMS AWS 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-keys
per recuperare un elenco degli ARN.DATABASE_KMS_KEY_ARN con il nome risorsa Amazon della chiave KMS AWS o dell'alias di chiave che protegge i database
etcd
del servizio di gestione, ad esempioarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
.GCP_PROJECT_ID con l'ID del progetto Google Cloud che ospita il tuo ambiente Anthos.
MANAGEMENT_KEY_PATH con la posizione della tua chiave dell'account di servizio di gestione Google Cloud.
HUB_KEY_PATH con la posizione della chiave del tuo account di servizio Google Cloud Connect.
NODE_KEY_PATH con la posizione dei tuoi cluster Anthos su chiave dell'account di servizio AWS.
VPC_CIDR_BLOCK con l'intervallo totale di IPR degli 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à AWS EC2 in cui vuoi creare nodi e piani di controllo. I cluster Anthos su AWS creano subnet in queste zone. Quando utilizzi
anthos-gke
per generare la configurazione per un cluster utente, Cluster Anthos on AWS crea piani di controllo e pool di nodi in queste zone di disponibilità, ad esempious-east-1a
.
Se vuoi utilizzareanthos-gke
per creare cluster utente in un'unica 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 cluster Anthos sui componenti AWS come il servizio di gestione vengono eseguiti nella subnet privata. Questa subnet deve essere all'interno dell'intervallo CIDR del VPC specificato in
vpcCIDRBlock
. Devi avere 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. È necessaria una subnet per ogni zona di disponibilità. La subnet pubblica espone i servizi cluster come bilanciatori del carico ai gruppi di sicurezza e agli intervalli di indirizzi specificati in ACL di rete e gruppi di sicurezza AWS, ad esempio
10.0.100.0/24
.SSH_CIDR_BLOCK con il blocco CIDR che consente lo SSH in entrata all'host di base, ad esempio
203.0.113.0/24
. Se vuoi consentire l'SSH da qualsiasi indirizzo IP, usa0.0.0.0/0
.(Facoltativo) PROXY_JSON_FILE con il percorso relativo del file di configurazione proxy. Se non utilizzi un proxy, elimina questa riga.
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 creare il servizio di gestione su AWS.anthos-gke aws management apply
Il completamento del comando
anthos-gke aws management apply
potrebbe richiedere fino a dieci minuti. Una volta completato il comando, il servizio di gestione viene eseguito su AWS.
Campi facoltativi
Il file anthos-gke.yaml
riportato sopra mostra un insieme tipico di campi necessari alla maggior parte dei clienti. La configurazione in anthos-gke.yaml
supporta anche
una serie di campi facoltativi. Queste includono:
- spec.bootstrapS3Bucket per specificare un bucket AWS S3 per i cluster Anthos sui dati di configurazione AWS
- spec.tags per codificare le risorse AWS correlate al cluster
- spec.securityGroupIDs per assegnare ID gruppo di sicurezza aggiuntivi al cluster di gestione
- spec.*Volume e i relativi sottocampi volumeType, iops e kmsKeyARN per regolare i parametri del volume EBS
- spec.terraform.stateGCSBucket per specificare un bucket Google Cloud Service per i dati di configurazione Terraform
Per ulteriori informazioni su tutti i campi supportati in anthos-gke.yaml
, consulta il riferimento AWS Management Service.
Connettersi al servizio di gestione
Successivamente, utilizza anthos-gke
per connetterti e autenticarti ai tuoi cluster Anthos sul servizio di gestione AWS.
Quando crei un servizio di gestione utilizzando le impostazioni predefinite, il piano di controllo ha un indirizzo IP privato che non è accessibile dall'esterno del VPC AWS. Puoi accedere al servizio di gestione in uno dei seguenti tre modi:
- mediante il servizio AWS Direct Connect di Amazon
- mediante un host bastion che proxy le connessioni tra Internet e i tuoi cluster Anthos sulle subnet AWS
- tramite una VPN
Quando crei un servizio di gestione in un VPC dedicato, Cluster Anthos on AWS crea automaticamente un bastion host in una subnet pubblica. Se ti connetti al tuo 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 l'host di base, segui questi passaggi:
Usa lo strumento
terraform
per generare lo script che apre un tunnel SSH al bastion host. Scegli la versione di Terraform, quindi esegui i comandi seguenti:Terraform 0.12, 0.13
terraform output bastion_tunnel > bastion-tunnel.sh chmod 755 bastion-tunnel.sh
Terraform 0.14.3 e versioni successive
terraform output -raw bastion_tunnel > bastion-tunnel.sh chmod 755 bastion-tunnel.sh
Terraform crea lo script
bastion-tunnel.sh
che fa riferimento alla chiave SSH del bastion host all'indirizzo~/.ssh/anthos-gke
.Per aprire il tunnel, esegui lo script
bastion-tunnel.sh
. Il tunnel inoltra dalocalhost:8118
al bastion host.Per aprire un tunnel al bastion host, esegui il comando seguente:
./bastion-tunnel.sh -N -4
I messaggi del tunnel SSH vengono visualizzati in questa finestra. Quando tutto è pronto per chiudere la connessione, interrompi il processo utilizzando Ctrl+C o chiudendo la finestra.
Apri un nuovo terminale e modifica la directory in quella con la configurazione di Cluster Anthos on AWS.
Genera un
kubeconfig
per l'autenticazione. Utilizzaanthos-gke
per aggiungere le credenziali alla configurazione archiviata in~/.kube/config
.anthos-gke aws management get-credentials
Verifica di poter connetterti al servizio di gestione con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
L'output include l'URL del server API del servizio di gestione.
Passaggi successivi
- Crea un cluster utente.
- Utilizza un proxy con Cluster Anthos on AWS.
- Modifica la configurazione di
kubectl
per connetterti ai cluster Anthos su AWS con meno opzioni a riga di comando.