AWSManagementService

La risorsa AWSManagementServicecontiene informazioni di configurazione per il servizio di gestione GKE su AWS.

Prima di creare il servizio di gestione, devi configurare un file YAML denominato anthos-gke.yaml. Lo strumento anthos-gke utilizza la configurazione durante la creazione del servizio di gestione.

I contenuti del file anthos-gke.yaml dipendono dal fatto che tu utilizzi anthos-gke per creare un Virtual Private Cloud (VPC) AWS dedicato o un VPC AWS esistente.

VPC dedicato

apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
  name: management
spec:
  version: ANTHOS_CLI_VERSION
  region: AWS_REGION
  authentication:
    awsIAM:
      adminIdentityARNs:
      - ADMIN_AWS_IAM_ARN
  kmsKeyARN: KMS_KEY_ARN
  databaseEncryption:
    kmsKeyARN: KMS_KEY_ARN
  googleCloud:
    projectID: GCP_PROJECT_ID
    serviceAccountKeys:
      managementService: MANAGEMENT_KEY_PATH
      connectAgent: CONNECT_KEY_PATH
      node: NODE_KEY_PATH
  iam:
      permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
      path: IAM_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 section
  rootVolume:
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  dataVolume:
    volumeType: DATA_VOLUME_TYPE
    iops: DATA_VOLUME_IOPS
    kmsKeyARN: DATA_VOLUME_KEY
  tags:
    tag-name: tag-value
  bastionHost:
    allowedSSHCIDRBlocks:
    - SSH_CIDR_BLOCK
    rootVolume:
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No
    stateGCSBucket: GCS_BUCKET_NAME

VPC esistente

apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
  name: management
spec:
  version: ANTHOS_CLI_VERSION
  region: AWS_REGION
  authentication:
    awsIAM:
      adminIdentityARNs:
      - ADMIN_AWS_IAM_ARN
  kmsKeyARN: KMS_KEY_ARN
  databaseEncryption:
    kmsKeyARN: KMS_KEY_ARN
  securityGroupIDs:
    - SECURITY_GROUP_IDS
  googleCloud:
    projectID: GCP_PROJECT_ID
    serviceAccountKeys:
      managementService: MANAGEMENT_KEY_PATH
      connectAgent: CONNECT_KEY_PATH
      node: NODE_KEY_PATH
  iam:
      permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
      path: IAM_PATH
  existingVPC:
    subnetID: [MANAGEMENT_SUBNET_ID]
    allowedSSHSecurityGroupIDs: [SSH_SECURITY_GROUPS]
  # Optional fields
  rootVolume:
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  dataVolume:
    volumeType: DATA_VOLUME_TYPE
    iops: DATA_VOLUME_IOPS
    kmsKeyARN: DATA_VOLUME_KEY
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  bastionHost:
    subnetID: [BASTION_HOST_SUBNET_ID]
    allowedSSHCIDRBlocks:
    - [SSH_CIDR_BLOCK]
    rootVolume:
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  tags:
    tag-name: tag-value
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No
    stateGCSBucket: GCS_BUCKET_NAME

Le sezioni seguenti descrivono questi campi.

spec.version

Il valore di spec.version è la versione del servizio di gestione creato da anthos- gke. La versione corrisponde all'output di anthos-gke version. Ad esempio, aws-1.14.1-gke.0.

spec.region

Il valore di spec.region è la regione AWS in cui vuoi eseguire il deployment del servizio di gestione. Ad esempio: us-east-1.

spec.authentication.awsIAM

Il valore di spec.authentication.awsIAM.adminIdentityARNs è una stringa con il nome della risorsa Amazon (ARN) di un utente IAM AWS con autorizzazioni per creare un servizio di gestione GKE su AWS. Ad esempio, arn:aws:iam::123456789:user/someuser.

spec.kmsKeyARN

Il valore di spec.kmsKeyARN è una stringa con l'Amazon Resource Name (ARN) o l'alias della chiave KMS AWS creata in Prerequisiti. GKE su AWS utilizza la chiave per la crittografia con envelope. Ad esempio, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.databaseEncryption

Il valore di spec.databaseEncryption.kmsKeyARN è una stringa con il nome della risorsa Amazon (ARN) o l'alias della chiave della chiave KMS di AWS utilizzata da GKE su AWS per criptare i secret a livello di applicazione nei cluster. Ad esempio, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.securityGroupIDs

Il valore di spec.securityGroupIDs è un elenco di ID gruppo di sicurezza AWS aggiuntivi assegnati alla VM del servizio di gestione. Ad esempio [sg-00123456789abcd, sg-00123456789def1].

spec.dedicatedVPC

Questo campo rappresenta le impostazioni VPC desiderate.

Nome Descrizione Tipo Esempio
vpcCIDRBlock Il blocco CIDR del VPC AWS che ti interessa. Deve essere compreso tra /16 e /28 bit. string 10.0.0.0/16
availabilityZones Zone di disponibilità in cui eseguire il deployment delle repliche del piano di controllo. Ogni zona avrà la propria subnet e richiede un blocco CIDR separato. list(string) [us-east-1a, us-east-1b]
privateSubnetCIDRBlocks Blocco CIDR per le subnet private all'interno del VPC in ogni zona di disponibilità. Deve essere un sottoinsieme di vpcCIDRBlock. Devi avere una subnet per ogni zona di disponibilità. list(string) [10.0.101.0/24, 10.0.102.0/24]
publicSubnetCIDRBlocks Blocco CIDR per le subnet pubbliche all'interno della VPC in ogni zona di disponibilità. Deve essere un sottoinsieme di vpcCIDRBlock. Devi avere una subnet per ogni zona di disponibilità. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastionAllowedSSHCIDRBlocks Blocchi CIDR da cui consentire l'accesso SSH in entrata. Questo campo è deprecato in GKE su AWS 1.5. Utilizza spec.bastionHost nella versione 1.5 o successive. string [104.132.0.0/14]

spec.existingVPC

I campi in spec.existingVPC consentono di configurare GKE su AWS in modo da utilizzare un VPC AWS esistente.

Nome Descrizione Tipo Esempio
subnetID ID della subnet in cui viene eseguito il servizio di gestione. string subnet-00123456789ab
allowedSSHSecurityGroupIDs Elenco degli ID gruppo di sicurezza che hanno consentito l'accesso SSH all'interno della VPC. list(string) [sg-00123456789abcd, sg-00123456789def1]

spec.googleCloud

Campi in spec.googleCloud Configura il Google Cloud progetto e le chiavi dell'account di servizio IAM.

Nome Descrizione Tipo Esempio
projectID Google Cloud Google Cloud project. string my-gcp-project-id
serviceAccountKeys Percorsi dei file alle chiavi dell'account di servizio. serviceAccountKeys

spec.googleCloud.serviceAccountKeys

I campi in spec.googleCloud.serviceAccountKeys includono i percorsi dei file locali alle chiavi dell'account di servizio Google Cloud. Consulta la sezione Prerequisiti per descrizioni dettagliate di ogni chiave.

Nome Descrizione Tipo Esempio
managementService Chiave account di servizio utilizzata dal cluster di gestione string path/to/key/management-sa-key.json
connectAgent Chiave dell'account servizio utilizzata dall'agente di connessione GKE Hub string path/to/key/hub-sa-key.json
node Chiave account di servizio utilizzata dai nodi string path/to/key/node-sa-key.json

spec.iam

I campi in spec.iam configurano i parametri IAM AWS facoltativi per il tuo ambiente GKE su AWS.

Nome Descrizione Tipo Esempio
permissionsBoundary ARN dei limiti di autorizzazione per i ruoli IAM string arn:aws:iam::126285863215:policy/testPolicyBoundary
percorso Percorso al ruolo IAM string /org_abc/team_abc/member_abc/

spec.bastionHost

La sezione spec.bastionHost è facoltativa e descrive un bastion host.

Un bastion host è un'istanza EC2 posizionata in una sottorete pubblica. Consente l'accesso SSH in entrata da un blocco CIDR specificato e ha accesso SSH in uscita al servizio di gestione GKE su AWS e ai cluster di utenti.

Puoi creare un bastion host per le installazioni dedicatedVPC o existingVPC. Il campo allowedSSHCIDRBlocks specifica l'intervallo di indirizzi in entrata consentiti e deve essere non vuoto.

Se non esiste un bastion host, GKE on AWS ne crea uno nuovo.

  • Per un'installazione dedicatedVPC, GKE su AWS crea una subnet.
  • Per un'installazione existingVPC, devi fornire una subnet per l'bastion host e assicurarti che questa subnet abbia connettività con la tua VPC.
spec.bastionHost

Puoi modificare l'bastion host modificando o eliminando il campo spec.bastionHost e eseguendo anthos-gke aws management init, seguito da anthos-gke aws management apply.

Nome Descrizione Tipo Esempio
subnetID L'ID della sottorete in cui viene eseguito l'bastion host. Per le installazioni di existingVPC, la sottorete deve consentire l'ingresso da dove accederai alla porta 22. Inoltre, assicurati che il VPC consenta l'accesso in entrata da questa subnet. Per le installazioni dedicatedVPC, non specificare questo campo. GKE su AWS eseguirà il provisioning della subnet con l'accesso richiesto. string subnet-003bdf7b0f5e21e45
allowedSSHCIDRBlocks Blocchi CIDR da cui consentire l'accesso SSH in entrata. list(string) [104.132.0.0/14]
rootVolume Un oggetto che descrive il volume principale dell'bastion host. object {volumeType: gp2}

spec.rootVolume, spec.dataVolume e spec.bastionHost.rootVolume

La tabella seguente descrive i campi comuni per i seguenti oggetti:

  • spec.rootVolume, per i volumi del disco radice del piano di controllo
  • spec.dataVolume, per i volumi dei dischi di dati del piano di controllo
  • spec.bastionHost.rootVolume, per i volumi del disco principale del bastion host
Nome Descrizione Tipo Esempio Obbligatorio
volumeType Il tipo di volume EBS AWS del nodo. Può essere gp2 (predefinito) o gp3. string gp2 no
IOPS La quantità di operazioni di I/O sottoposte a provisioning al secondo (IOPS) per i volumi. Valido solo quando volumeType è GP3. Per ulteriori informazioni, consulta Volumi SSD general purpose (gp3). integer 5000 no
kmsKeyARN L'ARN della chiave AWS KMS utilizzata per criptare il volume EBS. Per saperne di più, consulta Utilizzare una CMK gestita dal cliente per criptare i volumi. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee no

spec.tags

Nome Descrizione Tipo Esempio
tags Metadati chiave/valore facoltativi assegnati a ogni risorsa AWS che supporta il servizio di gestione. map(string) {Environment: Production, Team: Analytics}

spec.proxy

Il campo spec.proxy configura un proxy HTTP/HTTPS facoltativo.

Nome Descrizione Tipo Esempio
proxy Percorso del file di configurazione del proxy. Percorso relativo da anthos-gke.yaml proxy.json

spec.bootstrapS3Bucket

Il campo spec.bootstrapS3Bucket configura un nome del bucket S3 per GKE su AWS .

Nome Descrizione Tipo Esempio
bootstrapS3Bucket Campo facoltativo per il nome del bucket AWS S3 in cui GKE su AWS memorizza le informazioni di configurazione. Se vuoi creare più servizi di gestione GKE su AWS nella stessa regione AWS, imposta questo valore su un nome bucket univoco. string example-s3-bucket

spec.terraform

Il campo spec.terraform.invokeManually configura il comando anthos-gke in modo da non creare un servizio di gestione.

Nome Descrizione Tipo Esempio
invokeManually Campo facoltativo che configura lo strumento a riga di comando anthos-gke in modo da non creare un servizio di gestione dopo la compilazione e la convalida della configurazione. Se imposti invokeManually su Yes, puoi modificare e applicare manualmente i file di configurazione Terraform. Yes, No Yes
stateGCSBucket Campo facoltativo che specifica un bucket Google Cloud Storage preesistente in cui Terraform deve archiviare i dati di configurazione. string example-GCS-bucket