Esta página mostra como criar um cluster e um pool de nós que usam instâncias dedicadas ou hosts dedicados da AWS. Hosts e instâncias dedicados são reservados para seu uso exclusivo e não são compartilhados com outros clientes da AWS. A configuração para hosts e instâncias dedicados é conhecida como locação .
Antes de começar
Para usar instâncias ou hosts dedicados com o GKE na AWS, você precisa criar um novo cluster versão 1.22.8-gke.200 ou superior. Não é possível atualizar um cluster existente e adicionar hosts dedicados.
Requisitos de cluster
Antes de criar um cluster, você deve atender aos pré-requisitos . Em particular, você deve fornecer os seguintes recursos:
- Uma VPC da AWS onde o cluster será executado.
- Até três sub-redes da AWS para as três réplicas do plano de controle. Cada uma deve estar em uma Zona de Disponibilidade da AWS diferente.
- A função do IAM da AWS que o GKE na AWS assume ao gerenciar seu cluster. Isso requer um conjunto específico de permissões do IAM .
- Chaves CMK simétricas do KMS para criptografia em repouso de dados de cluster (etcd) e configuração.
- O perfil da instância do AWS IAM para cada réplica do plano de controle. Isso requer um conjunto específico de permissões do IAM .
- Um par de chaves SSH do EC2 (opcional) se você precisar de acesso SSH às instâncias do EC2 que executam cada réplica do plano de controle.
É sua responsabilidade criar e gerenciar esses recursos, que podem ser compartilhados entre todos os seus clusters do Anthos. Todos os outros recursos subjacentes da AWS no escopo do cluster são gerenciados pelo GKE na AWS.
Estas instruções usam a API Multi-Cloud do GKE para criar um cluster e um pool de nós. Antes de usar a API Multi-Cloud do GKE, certifique-se de estar familiarizado com Google Cloud APIs .
Hosts dedicados e instâncias dedicadas
Ao criar um cluster ou pool de nós, você escolhe uma das seguintes opções:
-
DEFAULT
: iniciar instâncias com a locação padrão da sua VPC -
DEDICATED
: iniciar instâncias em uma instância dedicada -
HOST
: iniciar instâncias em um host dedicado
Antes de criar um cluster ou pool de nós, decida qual opção é a certa para você.
Para obter mais informações, consulte Configurando locação de instância com uma configuração de inicialização , instâncias dedicadas e hosts dedicados na documentação da AWS.
Misturando configurações de locação em um cluster
Você pode configurar as configurações de locação individualmente para cada plano de controle e pool de nós. Por exemplo, você pode criar um cluster com o plano de controle em hosts compartilhados, um pool de nós em hosts dedicados e outro pool de nós em hosts compartilhados.
Alocar hosts dedicados
Antes de criar um cluster com hosts dedicados, você precisa alocar hosts para todas as instâncias necessárias ao seu cluster. Os hosts devem ter os seguintes atributos:
- Use as mesmas famílias de instâncias que seus recursos de cluster precisam
- Alocados nas mesmas zonas onde você planejou criar clusters
- Habilitar posicionamento automático
- Você tem cota suficiente para lançar hosts dedicados
Para obter mais informações sobre como alocar hosts dedicados, consulte Introdução aos hosts dedicados .
Limitações
Esta seção lista as limitações do suporte de host dedicado no GKE na AWS.
Pools de nós
Não é possível atualizar a configuração de locação de um pool de nós. Para mover cargas de trabalho para instâncias com outra configuração de locação, crie um novo pool de nós com a locação desejada e exclua o existente.
Famílias de instâncias suportadas
O GKE na AWS oferece suporte a hosts dedicados das seguintes famílias de instâncias.
- t3
- m5
- m5d
- c5
- c5d
- r5
- r5d
- i3en
Outras famílias de instâncias não são suportadas.
Tipos de nós
Somente pools de nós Linux são suportados.
Criar um cluster
Crie um cluster compatível com hosts dedicados com o método projects.locations.awsClusters.create com a API Multi-Cloud do GKE. Para criar um cluster, siga estas etapas:
gcloud
O exemplo a seguir cria um cluster com hosts dedicados.Antes de usar qualquer um dos dados de comando abaixo, faça as seguintes substituições:
- CLUSTER_NAME : o nome do cluster escolhido
- GOOGLE_CLOUD_LOCATION : o suportado Google Cloud região que gerencia seu cluster — por exemplo,
us-west1
- AWS_REGION : a região da AWS para criar o cluster
- API_ROLE_ARN : o ARN da função da API Multi-Cloud do GKE
- CONFIG_KMS_KEY_ARN : o nome do recurso da Amazon (ARN) da chave AWS KMS para criptografar dados do usuário
- DB_KMS_KEY_ARN : o nome do recurso da Amazon (ARN) da chave AWS KMS para criptografar os segredos do cluster
- CONTROL_PLANE_PROFILE : o perfil da instância do IAM associada ao cluster
- CONTROL_PLANE_SUBNET_1 , CONTROL_PLANE_SUBNET_2 , CONTROL_PLANE_SUBNET_3 com os IDs de sub-rede para as três instâncias do plano de controle do seu cluster
- TENANCY_TYPE : A configuração para a locação do plano de controle. Pode ser
DEFAULT
,DEDICATED
ouHOST
. - CLUSTER_VERSION : Uma versão de cluster suportada
- FLEET_PROJECT : o projeto host do Fleet onde o cluster será registrado. Se você quiser gerenciar este cluster a partir de outro projeto, consulte Registro entre projetos.
- POD_ADDRESS_CIDR_BLOCKS : o intervalo de endereços CIDR para os pods do seu cluster
- SERVICE_ADDRESS_CIDR_BLOCKS : o intervalo de endereços CIDR para os serviços do seu cluster
- VPC_ID : o ID do AWS VPC para este cluster
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud alpha container aws clusters create CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --aws-region AWS_REGION \ --role-arn API_ROLE_ARN \ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \ --database-encryption-kms-key-arn DB_KMS_KEY_ARN \ --iam-instance-profile CONTROL_PLANE_PROFILE \ --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 \ --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION \ --fleet-project FLEET_PROJECT \ --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS \ --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS \ --vpc-id VPC_ID \ --tags="control-plane=CLUSTER_NAME"
Windows (PowerShell)
gcloud alpha container aws clusters create CLUSTER_NAME ` --location GOOGLE_CLOUD_LOCATION ` --aws-region AWS_REGION ` --role-arn API_ROLE_ARN ` --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ` --database-encryption-kms-key-arn DB_KMS_KEY_ARN ` --iam-instance-profile CONTROL_PLANE_PROFILE ` --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 ` --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION ` --fleet-project FLEET_PROJECT ` --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS ` --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS ` --vpc-id VPC_ID ` --tags="control-plane=CLUSTER_NAME"
Windows (cmd.exe)
gcloud alpha container aws clusters create CLUSTER_NAME ^ --location GOOGLE_CLOUD_LOCATION ^ --aws-region AWS_REGION ^ --role-arn API_ROLE_ARN ^ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ^ --database-encryption-kms-key-arn DB_KMS_KEY_ARN ^ --iam-instance-profile CONTROL_PLANE_PROFILE ^ --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 ^ --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION ^ --fleet-project FLEET_PROJECT ^ --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS ^ --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS ^ --vpc-id VPC_ID ^ --tags="control-plane=CLUSTER_NAME"
DESCANSAR
O exemplo a seguir cria um cluster com hosts dedicados.Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:
- ENDPOINT : seu Google Cloudponto final do serviço
- PROJECT_ID : seu Google Cloud projeto
- USERNAME : usuário que pode executar operações como administrador de cluster
- CLUSTER_NAME : o nome do cluster escolhido
- GOOGLE_CLOUD_LOCATION : o suportado Google Cloud região que gerencia seu cluster — por exemplo,
us-west1
- AWS_REGION : a região da AWS para criar o cluster
- API_ROLE_ARN : o ARN da função da API Multi-Cloud do GKE
- CONFIG_KMS_KEY_ARN : o nome do recurso da Amazon (ARN) da chave AWS KMS para criptografar dados do usuário
- DB_KMS_KEY_ARN : o nome do recurso da Amazon (ARN) da chave AWS KMS para criptografar os segredos do cluster
- CONTROL_PLANE_PROFILE : o perfil da instância do IAM associada ao cluster
- CONTROL_PLANE_SUBNET_1 , CONTROL_PLANE_SUBNET_2 , CONTROL_PLANE_SUBNET_3 com os IDs de sub-rede para as três instâncias do plano de controle do seu cluster
- TENANCY_TYPE : A configuração para a locação do plano de controle. Pode ser
DEFAULT
,DEDICATED
ouHOST
. - CLUSTER_VERSION : Uma versão de cluster suportada
- FLEET_PROJECT : o projeto host do Fleet onde o cluster será registrado. Se você quiser gerenciar este cluster a partir de outro projeto, consulte Registro entre projetos.
- POD_ADDRESS_CIDR_BLOCKS : o intervalo de endereços CIDR para os pods do seu cluster
- SERVICE_ADDRESS_CIDR_BLOCKS : o intervalo de endereços CIDR para os serviços do seu cluster
- VPC_ID : o ID do AWS VPC para este cluster
Método HTTP e URL:
POST ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters
Corpo JSON da solicitação:
{ "name": "CLUSTER_NAME", "authorization": { "adminUsers": [ { "username": "USERNAME" } ] }, "awsRegion": "AWS_REGION", "controlPlane": { "awsServicesAuthentication": { "roleArn": "API_ROLE_ARN" }, "configEncryption": { "kmsKeyArn": "CONFIG_KMS_KEY_ARN" }, "databaseEncryption": { "kmsKeyArn": "DB_KMS_KEY_ARN" }, "iamInstanceProfile": "CONTROL_PLANE_PROFILE", "mainVolume": {}, "rootVolume": {}, "sshConfig": {}, "subnetIds": [ "CONTROL_PLANE_SUBNET_1", "CONTROL_PLANE_SUBNET_2", "CONTROL_PLANE_SUBNET_3" ], "tags": { "google:gkemulticloud:cluster": "CLUSTER_NAME" }, "instancePlacement": { "tenancy": "TENANCY_TYPE" }, "version": "CLUSTER_VERSION" }, "fleet": { "project": "FLEET_PROJECT" }, "networking": { "podAddressCidrBlocks": [ "POD_ADDRESS_CIDR_BLOCKS" ], "serviceAddressCidrBlocks": [ "SERVICE_ADDRESS_CIDR_BLOCKS" ], "vpcId": "VPC_ID" } }
Para enviar sua solicitação, expanda uma destas opções:
Você deve receber um código de status bem-sucedido (2xx) e uma resposta vazia.
Para opções adicionais, consulte a documentação de referência Método: projects.locations.awsClusters.create .
Criar um pool de nós
gcloud
O exemplo a seguir cria um pool de nós com hosts dedicados. Ao criar um pool de nós, todas as instâncias dentro do pool têm o mesmo tipo de instância e configuração de locação.Antes de usar qualquer um dos dados de comando abaixo, faça as seguintes substituições:
- GOOGLE_CLOUD_LOCATION : o suportado Google Cloud região
- CLUSTER_NAME : nome do seu cluster
- NODE_POOL_NAME : o nome do pool de nós que gerencia seu cluster — por exemplo,
us-west1
- MIN_NODES : o número mínimo de nós que o pool de nós pode conter
- MAX_NODES : o número máximo de nós que o pool de nós pode conter
- CONFIG_KMS_KEY_ARN : o nome do recurso da Amazon (ARN) da chave AWS KMS que criptografa os dados do usuário
- NODEPOOL_PROFILE : o perfil de instância do IAM para VMs do pool de nós
- ROOT_VOLUME_SIZE : o tamanho desejado para o volume raiz de cada nó, em Gb
- TENANCY_TYPE : A configuração para a locação do plano de controle. Pode ser
DEFAULT
,DEDICATED
ouHOST
. - INSTANCE_TYPE : o tipo de instância da máquina AWS desejada para este pool de nós
- NODEPOOL_SUBNET : o ID da sub-rede na qual o pool de nós será executado. Se essa sub-rede estiver fora do bloco CIDR primário da VPC, algumas etapas adicionais serão necessárias. Para obter mais informações, consulte grupos de segurança .
- CLUSTER_VERSION : Uma versão de cluster suportada
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud alpha container aws node-pools create NODE_POOL_NAME \ --cluster CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --min-nodes MIN_NODES \ --max-nodes MAX_NODES \ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \ --iam-instance-profile NODEPOOL_PROFILE \ --root-volume-size ROOT_VOLUME_SIZE \ --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE \ --subnet-id NODEPOOL_SUBNET \ --ssh-ec2-key-pair SSH_KEY_PAIR_NAME \ --node-version CLUSTER_VERSION \ --max-pods-per-node 110 \ --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
Windows (PowerShell)
gcloud alpha container aws node-pools create NODE_POOL_NAME ` --cluster CLUSTER_NAME ` --location GOOGLE_CLOUD_LOCATION ` --min-nodes MIN_NODES ` --max-nodes MAX_NODES ` --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ` --iam-instance-profile NODEPOOL_PROFILE ` --root-volume-size ROOT_VOLUME_SIZE ` --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE ` --subnet-id NODEPOOL_SUBNET ` --ssh-ec2-key-pair SSH_KEY_PAIR_NAME ` --node-version CLUSTER_VERSION ` --max-pods-per-node 110 ` --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
Windows (cmd.exe)
gcloud alpha container aws node-pools create NODE_POOL_NAME ^ --cluster CLUSTER_NAME ^ --location GOOGLE_CLOUD_LOCATION ^ --min-nodes MIN_NODES ^ --max-nodes MAX_NODES ^ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ^ --iam-instance-profile NODEPOOL_PROFILE ^ --root-volume-size ROOT_VOLUME_SIZE ^ --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE ^ --subnet-id NODEPOOL_SUBNET ^ --ssh-ec2-key-pair SSH_KEY_PAIR_NAME ^ --node-version CLUSTER_VERSION ^ --max-pods-per-node 110 ^ --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
DESCANSAR
O exemplo a seguir cria um pool de nós com hosts dedicados. Ao criar um pool de nós, todas as instâncias dentro do pool têm o mesmo tipo de instância e configuração de locação.
Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:
- ENDPOINT : seu Google Cloudponto final do serviço
- PROJECT_ID : seu Google Cloud projeto
- USERNAME : usuário que pode executar operações como administrador de cluster
- GOOGLE_CLOUD_LOCATION : o suportado Google Cloud região
- CLUSTER_NAME : nome do seu cluster
- NODE_POOL_NAME : o nome do pool de nós que gerencia seu cluster — por exemplo,
us-west1
- MIN_NODES : o número mínimo de nós que o pool de nós pode conter
- MAX_NODES : o número máximo de nós que o pool de nós pode conter
- CONFIG_KMS_KEY_ARN : o nome do recurso da Amazon (ARN) da chave AWS KMS que criptografa os dados do usuário
- NODEPOOL_PROFILE : o perfil de instância do IAM para VMs do pool de nós
- ROOT_VOLUME_SIZE : o tamanho desejado para o volume raiz de cada nó, em Gb
- TENANCY_TYPE : A configuração para a locação do plano de controle. Pode ser
DEFAULT
,DEDICATED
ouHOST
. - INSTANCE_TYPE : o tipo de instância da máquina AWS desejada para este pool de nós
- NODEPOOL_SUBNET : o ID da sub-rede na qual o pool de nós será executado. Se essa sub-rede estiver fora do bloco CIDR primário da VPC, algumas etapas adicionais serão necessárias. Para obter mais informações, consulte grupos de segurança .
- CLUSTER_VERSION : Uma versão de cluster suportada
Método HTTP e URL:
POST ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/CLUSTER_NAME/awsNodePools
Corpo JSON da solicitação:
{ "name": "NODE_POOL_NAME", "autoscaling": { "minNodeCount": MIN_NODES, "maxNodeCount": MAX_NODES }, "config": { "configEncryption": { "kmsKeyArn": "CONFIG_KMS_KEY_ARN" }, "iamInstanceProfile": "NODEPOOL_PROFILE", "rootVolume": { "sizeGib": ROOT_VOLUME_SIZE }, "instancePlacement": { "tenancy": "TENANCY_TYPE" }, "instanceType" : "INSTANCE_TYPE" "tags": { "google:gkemulticloud:cluster": "NODE_POOL_NAME" } }, "maxPodsConstraint": { "maxPodsPerNode": "110" }, "subnetId": "NODEPOOL_SUBNET", "version": "CLUSTER_VERSION" }
Para enviar sua solicitação, expanda uma destas opções:
Você deve receber um código de status bem-sucedido (2xx) e uma resposta vazia.
Para opções adicionais, consulte a documentação de referência do Método: projects.locations.awsClusters.awsNodePools.create .
Limpeza
Para excluir um cluster usando hosts dedicados, execute as seguintes etapas:
- Excluir todos os pools de nós
- Excluir um cluster .
- Depois de excluir seus pools de nós e cluster, você pode liberar hosts dedicados .
O que vem a seguir
- Leia a documentação de referência da API AWSInstancePlacement .