La risorsa AWSManagementService
contiene 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 controllospec.dataVolume
, per i volumi dei dischi di dati del piano di controllospec.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 |