La risorsa AWSManagementService
contiene informazioni di configurazione per il servizio di gestione GKE su AWS.
Prima di creare il servizio di gestione, configura 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 utilizzi anthos-gke
per creare un
Virtual Private Cloud (VPC) AWS dedicato,
o se utilizzi 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
l'Amazon Resource Name (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 AWS KMS 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 l'Amazon Resource Name (ARN) o l'alias della 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 di gruppi 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 preferisci. 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 control plane. 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 ogni 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 ogni 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 da cui consentire l'accesso SSH in entrata. Questo campo è obsoleto 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 per utilizzare
un VPC AWS esistente.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
subnetID | L'ID subnet in cui viene eseguito il servizio di gestione. | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | Elenco degli ID dei gruppi di sicurezza a cui è consentito l'accesso SSH all'interno del VPC. | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
I campi in spec.googleCloud
configurano il tuo Google Cloud progetto
e le chiavi dell'account di servizio IAM.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
projectID | Google Cloud Google Cloud progetto. | string |
my-gcp-project-id |
serviceAccountKeys | Percorsi dei file delle chiavi del service account. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
I campi in spec.googleCloud.serviceAccountKeys
includono i percorsi dei file locali alle chiavi dell'account di servizio GCP. Consulta la sezione
Prerequisiti
per descrizioni dettagliate di ogni chiave.
Nome | Descrizione | Tipo | Esempio |
---|---|---|---|
managementService
|
Chiave service account utilizzata dal cluster di gestione | string | path/to/key/management-sa-key.json
|
connectAgent
|
Chiave del service account utilizzata dall'agente di connessione GKE Hub | string | path/to/key/hub-sa-key.json
|
node
|
Chiave service account 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 confini 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 inserita in una subnet pubblica. Consente l'accesso SSH in entrata da un blocco CIDR specificato e l'accesso SSH in uscita ai cluster di gestione e utente GKE su AWS.
Puoi creare un bastion host per le installazioni dedicatedVPC
o existingVPC
. Il campo allowedSSHCIDRBlocks
specifica l'intervallo in entrata di
indirizzi consentiti e non deve essere vuoto.
Se non esiste un bastion host, GKE su AWS ne crea uno nuovo.
- Per un'installazione
dedicatedVPC
, GKE su AWS crea una subnet. - Per un'installazione di
existingVPC
, devi fornire una subnet per l'bastion host e assicurarti che questa subnet abbia la connettività al tuo VPC.
Puoi modificare l'bastion host modificando 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 l'bastion host. Per le installazioni di existingVPC , la subnet deve consentire l'ingresso da dove vi accederai sulla 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 radice 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 principale del control planespec.dataVolume
, per i volumi del disco dati del control planespec.bastionHost.rootVolume
, per i volumi del disco di avvio del bastion host
Nome | Descrizione | Tipo | Esempio | Obbligatorio |
---|---|---|---|---|
volumeType | Il tipo di volume EBS del nodo. Può essere gp2 (predefinito) o gp3 . |
string |
gp2 |
no |
iops | La quantità di operazioni di I/O al secondo (IOPS) di cui è stato eseguito il provisioning per i volumi. Valido solo quando volumeType è GP3 . Per ulteriori informazioni, vedi Volumi SSD per uso generico (gp3). |
integer |
5000 |
no |
kmsKeyARN | L'ARN della chiave AWS KMS utilizzata per criptare il volume EBS. Per saperne di più, consulta Utilizzo di una chiave 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 |
---|---|---|---|
Tag | 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 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 bucket univoco. | string |
example-s3-bucket |
spec.terraform
Il campo spec.terraform.invokeManually
configura il comando anthos-gke
in modo che non crei 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 in cui Terraform deve archiviare i dati di configurazione. | string |
example-GCS-bucket |