La risorsa AWSManagementService
contiene le informazioni di configurazione per GKE su AWS Management Service.
Devi configurare un file YAML denominato anthos-gke.yaml
prima di creare il servizio di gestione. Lo strumento anthos-gke
utilizza la configurazione durante la creazione
del servizio di gestione.
I contenuti del file anthos-gke.yaml
dipendono dall'utilizzo di anthos-gke
per creare un VPC (Virtual Private Cloud) AWS dedicato o dall'utilizzo di 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 creata 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
corrisponde alla 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 AWS IAM con autorizzazioni per creare un servizio di gestione di GKE su AWS. Ad esempio,
arn:aws:iam::123456789:user/someuser
.
spec.kmsKeyARN
Il valore di spec.kmsKeyARN
è una stringa con il nome della risorsa Amazon (ARN) o l'alias della chiave KMS di AWS creata in Prerequisiti.
GKE su AWS utilizza la chiave per la crittografia 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 nome risorsa Amazon (ARN) o alias chiave della chiave KMS di AWS che GKE su AWS utilizza 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 di Management Service.
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 desiderato. Il valore 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 necessita di un blocco CIDR separato. | list(string) |
[us-east-1a, us-east-1b] |
privateSubnetCIDRBlocks | Blocco CIDR per le subnet private all'interno del VPC in ciascuna zona di disponibilità. Deve essere un sottoinsieme di vpcCIDRBlock . Devi avere una subnet per zona di disponibilità. |
list(string) |
[10.0.101.0/24, 10.0.102.0/24] |
publicSubnetCIDRBlocks | Blocco CIDR per le subnet pubbliche all'interno del VPC in ciascuna zona di disponibilità. Deve essere un sottoinsieme di vpcCIDRBlock . Devi avere una subnet per zona di disponibilità. |
list(string) |
[10.0.1.0/24, 10.0.2.0/24] |
bastionAllowedSSHCIDRBlocks | Blocchi CIDR per 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
configurano GKE su AWS in modo da utilizzare
un VPC AWS esistente.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
subnetID | ID subnet in cui viene eseguito il servizio di gestione. | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | Elenco di ID gruppo di sicurezza a cui è consentito l'accesso SSH all'interno del VPC. | elenco(stringa) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
I campi in spec.googleCloud
consentono di configurare le chiavi del progetto Google Cloud
e dell'account di servizio IAM.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
projectID | Progetto Google Cloud. | string |
my-gcp-project-id |
serviceAccountKeys | Percorsi dei file delle chiavi dell'account di servizio. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
I campi in spec.googleCloud.serviceAccountKeys
includono i percorsi file locali delle chiavi dell'account di servizio Google Cloud. Consulta i prerequisiti per le descrizioni dettagliate di ogni chiave.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
managementService
|
Chiave dell'account di servizio utilizzata dal cluster di gestione | string | path/to/key/management-sa-key.json
|
connectAgent
|
Chiave dell'account di servizio utilizzata dall'agente Connect di GKE Hub | string | path/to/key/hub-sa-key.json
|
node
|
Chiave dell'account di servizio utilizzata dai nodi | string | path/to/key/node-sa-key.json
|
spec.iam
I campi in spec.iam
configurano i parametri AWS IAM facoltativi per il tuo ambiente GKE in AWS.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
permissionsBoundary | ARN dei Limiti delle autorizzazioni per i ruoli IAM | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
percorso | Percorso del 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 subnet pubblica. Consente l'accesso SSH in entrata da un blocco CIDR specificato e l'accesso SSH in uscita a GKE su servizio di gestione AWS e cluster utente.
Puoi creare un bastion host per le installazioni dedicatedVPC
o existingVPC
. Il campo allowedSSHCIDRBlocks
specifica l'intervallo di indirizzi in entrata consentito e non deve essere vuoto.
Se non esiste un bastion host, GKE su AWS crea un nuovo bastion host.
- Per un'installazione
dedicatedVPC
, GKE su AWS crea una subnet. - Per un'installazione di
existingVPC
, devi fornire una subnet per il bastion host e assicurarti che questa subnet sia connessa al tuo VPC.
Puoi modificare il tuo bastion host cambiando o eliminando il campo spec.bastionHost
ed eseguendo anthos-gke aws management init
, seguito da anthos-gke aws management apply
.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
subnetID | L'ID della subnet in cui viene eseguito il bastion host. Per le installazioni di existingVPC , la subnet deve consentire il traffico in entrata dalla quale potrai accedervi sulla porta 22. Inoltre, assicurati che il tuo 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 per consentire l'accesso SSH in entrata. | list(string) |
[104.132.0.0/14] |
rootVolume | Un oggetto che descrive il volume principale del bastion host. | object |
{volumeType: gp2} |
spec.rootVolume, spec.dataVolume e spec.bastionHost.rootVolume
Nella tabella seguente vengono descritti i campi comuni per i seguenti oggetti:
spec.rootVolume
, per i volumi di disco radice del piano di controllospec.dataVolume
, per i volumi del disco dati del piano di controllospec.bastionHost.rootVolume
, per i volumi del disco radice del bastion host
Nome | Descrizione | Tipo | Esempio | Obbligatorio |
---|---|---|---|---|
volumeType | Il tipo di volume AWS EBS del nodo. Può essere gp2 (valore predefinito) o gp3 . |
string |
gp2 |
no |
IOPS | La quantità di operazioni IO di cui è stato eseguito il provisioning al secondo (IOPS) per i volumi. Valido solo quando volumeType è GP3 . Per maggiori informazioni, consulta la sezione Volumi SSD per uso generico (gp3). |
integer |
5000 |
no |
kmsKeyARN | L'ARN della chiave KMS di AWS 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 facoltativi delle coppie chiave/valore assegnati a ogni risorsa AWS che supporta il servizio di gestione. | map(string) |
{Ambiente: Produzione, Team: Analytics} |
spec.proxy
Il campo spec.proxy
consente di configurare un proxy HTTP/HTTPS facoltativo.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
proxy | Percorso del file di configurazione proxy. | Percorso relativo da anthos-gke.yaml |
proxy.json |
spec.bootstrapS3Bucket
Il campo spec.bootstrapS3Bucket
configura un nome di 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 archivia le informazioni di configurazione. Se vuoi creare più servizi di gestione GKE su AWS nella stessa regione AWS, imposta questo valore su un nome di 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 che non crei un servizio di gestione dopo aver creato e convalidato la 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 per consentire a Terraform di archiviare i propri dati di configurazione. | string |
example-GCS-bucket |