La ressource AWSManagementService
contient des informations de configuration pour votre service de gestion GKE sur AWS.
Vous devez configurer un fichier YAML nommé anthos-gke.yaml
avant de créer votre service de gestion. L'outil anthos-gke
utilise la configuration lors de la création de votre service de gestion.
Le contenu de votre fichier anthos-gke.yaml
varie selon que vous utilisez anthos-gke
pour créer un cloud privé virtuel AWS (VPC) dédié ou si vous utilisez un cloud privé virtuel AWS existant.
VPC dédié
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 existant
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
Les sections suivantes décrivent ces champs.
spec.version
La valeur de spec.version
correspond à la version du service de gestion anthos-
gke
créé. La version correspond à la sortie de anthos-gke version
. Par exemple, aws-1.14.1-gke.0
.
spec.region
La valeur de spec.region
correspond à la région AWS dans laquelle vous souhaitez déployer le service de gestion. Exemple :us-east-1
spec.authentication.awsIAM
La valeur de spec.authentication.awsIAM.adminIdentityARNs
est une chaîne dotée du nom de ressource Amazon (ARN) d'un utilisateur AWS IAM disposant des autorisations pour créer un service de gestion GKE sur AWS. Exemple : arn:aws:iam::123456789:user/someuser
.
spec.kmsKeyARN
La valeur de spec.kmsKeyARN
est une chaîne qui contient le nom de ressource Amazon (ARN) de la clé KMS AWS créée dans la section Conditions préalables.
GKE sur AWS utilise la clé pour le chiffrement encapsulé.
Par exemple, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
.
spec.databaseEncryption
La valeur de spec.databaseEncryption.kmsKeyARN
est une chaîne contenant le nom de ressource Amazon (ARN) ou l'alias de la clé KMS AWS que GKE sur AWS utilise pour chiffrer les secrets de la couche d'application dans les clusters. Exemple : arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
.
spec.securityGroupIDs
La valeur de spec.securityGroupIDs
correspond à une liste d'ID de groupe de sécurité AWS supplémentaires attribués à la VM de service de gestion.
Par exemple, [sg-00123456789abcd, sg-00123456789def1].
spec.dedicatedVPC
Ce champ représente les paramètres VPC souhaités.
Nom | Description | Type | Exemple |
---|---|---|---|
vpcCIDRBlock | Bloc CIDR du VPC AWS souhaité. La valeur doit être comprise entre /16 et /28 bits. | string |
10.0.0.0/16 |
availabilityZones | Zones de disponibilité dans lesquelles déployer des instances de plan de contrôle dupliquées. Chaque zone possède son propre sous-réseau et nécessite un bloc CIDR distinct. | list(string) |
[us-east-1a, us-east-1b] |
privateSubnetCIDRBlocks | Bloc CIDR pour les sous-réseaux privés au sein du VPC dans chaque zone de disponibilité. Doit être un sous-ensemble de vpcCIDRBlock . Vous devez disposer d'un sous-réseau par zone de disponibilité. |
list(string) |
[10.0.101.0/24, 10.0.102.0/24] |
publicSubnetCIDRBlocks | Bloc CIDR pour les sous-réseaux publics au sein du VPC dans chaque zone de disponibilité. Doit être un sous-ensemble de vpcCIDRBlock . Vous devez disposer d'un sous-réseau par zone de disponibilité. |
list(string) |
[10.0.1.0/24, 10.0.2.0/24] |
bastionAllowedSSHCIDRBlocks | Blocs CIDR à partir desquels autoriser l'accès SSH entrant. Ce champ est obsolète dans GKE sur AWS 1.5. Utilisez spec.bastionHost dans la version 1.5 ou ultérieure. |
string |
[104.132.0.0/14] |
spec.existingVPC
Les champs sous spec.existingVPC
configurent GKE sur AWS pour utiliser un VPC AWS existant.
Nom | Description | Type | Exemple |
---|---|---|---|
subnetID | ID du sous-réseau dans lequel le service de gestion s'exécute. | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | Liste des ID de groupe de sécurité autorisant l'accès SSH au sein du VPC. | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
Les champs sous spec.googleCloud
configurent votre projet Google Cloud et vos clés de compte de service IAM.
Nom | Description | Type | Exemple |
---|---|---|---|
projectID | Projet Google Cloud Google Cloud. | string |
my-gcp-project-id |
serviceAccountKeys | Chemins d'accès aux clés de compte de service. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
Les champs situés sous spec.googleCloud.serviceAccountKeys
incluent des chemins d'accès locaux vers les clés de compte de service GCP. Pour obtenir une description détaillée de chaque clé, consultez la section Prérequis.
Nom | Description | Type | Exemple |
---|---|---|---|
managementService
|
Clé de compte de service utilisée par le cluster de gestion | chaîne | path/to/key/management-sa-key.json
|
connectAgent
|
Clé de compte de service utilisée par l'agent GKE Hub Connect | chaîne | path/to/key/hub-sa-key.json
|
node
|
Clé de compte de service utilisée par les nœuds | chaîne | path/to/key/node-sa-key.json
|
spec.iam
Les champs sous spec.iam
configurent les paramètres facultatifs IAM AWS pour votre environnement GKE sur AWS.
Nom | Description | Type | Exemple |
---|---|---|---|
permissionsBoundary | ARN des limites d'autorisations pour les rôles IAM | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
chemin d'accès | Chemin d'accès au rôle IAM | string |
/org_abc/team_abc/member_abc/ |
spec.bastionHost
La section spec.bastionHost
est facultative et décrit un hôte bastion.
Un hôte bastion est une instance EC2 placée dans un sous-réseau public. Elle autorise l'accès SSH entrant à partir d'un bloc CIDR spécifié et dispose d'un accès SSH sortant à votre service de gestion GKE sur AWS et aux clusters d'utilisateur.
Vous pouvez créer un hôte bastion pour les installations dedicatedVPC
ou existingVPC
. Le champ allowedSSHCIDRBlocks
spécifie la plage d'adresses entrantes autorisées et ne doit pas être vide.
Si aucun hôte bastion n'existe, GKE sur AWS en crée un.
- Pour une installation
dedicatedVPC
, GKE sur AWS crée un sous-réseau. - Pour une installation
existingVPC
, vous devez spécifier un sous-réseau pour l'hôte bastion et vous assurer que ce sous-réseau dispose d'une connectivité à votre VPC.
Vous pouvez modifier votre hôte bastion en modifiant ou en supprimant le champ spec.bastionHost
et en exécutant anthos-gke aws management init
, suivi de anthos-gke aws management apply
.
Nom | Description | Type | Exemple |
---|---|---|---|
subnetID | ID du sous-réseau d'exécution de l'hôte bastion. Pour les installations existingVPC , le sous-réseau doit autoriser l'entrée depuis l'emplacement à partir duquel vous y accédez sur le port 22. Assurez-vous également que votre VPC autorise l'accès entrant depuis ce sous-réseau. Pour les installations en dedicatedVPC , ne spécifiez pas ce champ. GKE sur AWS provisionne le sous-réseau avec l'accès requis. |
chaîne | subnet-003bdf7b0f5e21e45 |
allowedSSHCIDRBlocks | Blocs CIDR à partir desquels autoriser l'accès SSH entrant. | list(string) |
[104.132.0.0/14] |
rootVolume | Objet décrivant le volume racine d'un hôte bastion. | object |
{volumeType: gp2} |
spec.rootVolume, spec.dataVolume et spec.bastionHost.rootVolume
Le tableau suivant décrit les champs courants des objets suivants :
spec.rootVolume
pour les volumes de disque racine du plan de contrôlespec.dataVolume
pour les volumes de disque de données du plan de contrôlespec.bastionHost.rootVolume
pour les volumes de disque racine de l'hôte bastion
Nom | Description | Type | Exemple | Requis |
---|---|---|---|---|
volumeType | Type de volume EBS AWS du nœud. Peut être gp2 (par défaut), ou gp3 . |
string |
gp2 |
no |
iops | Nombre d'opérations d'E/S par seconde (IOPS) provisionné pour les volumes. Valable uniquement lorsque la valeur de volumeType est GP3 . Pour plus d'informations, consultez la section Volumes SSD à usage général (gp3). |
integer |
5000 |
no |
kmsKeyARN | ARN de la clé KMS AWS utilisée pour chiffrer le volume EBS. Pour plus d'informations, consultez la page Utiliser des clés gérées par le client (CMK) pour chiffrer des volumes. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
no |
spec.tags
Nom | Description | Type | Exemple |
---|---|---|---|
tags | Métadonnées clé/valeur facultatives attribuées à chaque ressource AWS compatible avec le service de gestion. | map(string) |
{Environment: Production, Team: Analytics} |
spec.proxy
Le champ spec.proxy
configure un proxy HTTP/HTTPS facultatif.
Nom | Description | Type | Exemple |
---|---|---|---|
proxy | Chemin d'accès au fichier de configuration du proxy. | Chemin d'accès relatif issu de anthos-gke.yaml |
proxy.json |
spec.bootstrapS3Bucket
Le champ spec.bootstrapS3Bucket
configure un nom de bucket S3 pour GKE sur AWS .
Nom | Description | Type | Exemple |
---|---|---|---|
bootstrapS3Bucket | Champ facultatif du nom du bucket AWS S3 dans lequel GKE sur AWS stocke les informations de configuration. Si vous souhaitez créer plusieurs services de gestion de GKE sur AWS dans la même région AWS, définissez cette valeur sur un nom de bucket unique. | string |
example-s3-bucket |
spec.terraform
Le champ spec.terraform.invokeManually
configure la commande anthos-gke
afin de ne pas créer de service de gestion.
Nom | Description | Type | Exemple |
---|---|---|---|
invokeManually | Champ facultatif qui configure l'outil de ligne de commande anthos-gke afin de ne pas créer de service de gestion après avoir créé et validé votre configuration. Si vous définissez invokeManually sur Yes , vous pouvez modifier et appliquer manuellement les fichiers de configuration Terraform. |
Yes , No |
Yes |
stateGCSBucket | Champ facultatif qui spécifie un bucket Google Cloud Storage préexistant pour que Terraform puisse stocker ses données de configuration. | string |
example-GCS-bucket |