Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Configurar parâmetros avançados do ambiente de gerenciamento do Kubernetes
Este guia explica como configurar e visualizar os parâmetros avançados do ambiente de gerenciamento do Kubernetes usando a AWS CLI e o Console de gerenciamento da AWS. Para obter uma explicação de cada parâmetro e seu efeito no cluster, consulte Configuração avançada do ambiente de gerenciamento do Kubernetes.
Pré-requisitos
Antes de começar, garanta que você tenha:
-
Um cluster do Amazon EKS executando o Kubernetes versão 1.31 ou posterior: a configuração avançada do ambiente de gerenciamento do Kubernetes é compatível com clusters novos e existentes que executam o Kubernetes versão 1.31 ou posterior. Todos os parâmetros neste tópico compartilham essa versão mínima.
-
AWS CLI - Uma ferramenta de linha de comando para trabalhar com os serviços AWS, incluindo o Amazon EKS. Para obter mais informações, consulte Instalação no Guia do usuário da AWS Command Line Interface. Depois de instalar a AWS CLI, recomendamos que você também a configure. Para obter mais informações, consulte Configuração rápida com o comando “aws configure” no Guia do usuário da AWS Command Line Interface.
-
Permissões do IAM necessárias: a entidade principal do IAM que você está usando deve ter permissões para descrever e atualizar clusters do Amazon EKS. Execute o seguinte comando para verificar a entidade principal atual:
aws sts get-caller-identity
nota
Convém concluir as etapas neste tópico em um shell Bash. Se não estiver utilizando um shell Bash, alguns comandos de script, como caracteres de continuação de linha e a forma como as variáveis são definidas e utilizadas, exigirão o ajuste do seu shell. Além disso, as regras de citação e de escape do seu shell podem ser diferentes. Para obter mais informações, consulte Usar de aspas com strings na AWS CLI no Guia do usuário da AWS Command Line Interface.
Defina o nome e a região do cluster de sua preferência antes de executar os comandos neste tópico:
export CLUSTER=my-eks-cluster export AWS_REGION=us-west-2
Valores compatíveis
O Amazon EKS valida cada parâmetro em relação aos seguintes intervalos e rejeita uma solicitação fora deles.
| Parâmetro do componente | Valores compatíveis | Padrão |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esses valores se aplicam às versões do Kubernetes disponíveis na publicação e podem ser alterados em versões posteriores. Para recuperar os valores atuais de uma versão específica, consulte a seção a seguir.
Encontre os valores padrão e compatíveis para uma versão do Kubernetes
A operação DescribeClusterVersions relata o valor padrão e os valores compatíveis para cada parâmetro do ambiente de gerenciamento, para cada versão do Kubernetes. Leia os valores dessa operação em vez de codificá-los, principalmente se você automatizar a configuração do cluster ou gerenciar clusters em várias versões do Kubernetes.
aws eks describe-cluster-versions --cluster-versions 1.35
A resposta inclui um objeto controlPlaneComponentConfig, organizado pelo componente do ambiente de gerenciamento. Cada parâmetro relata um objeto defaultValue e um objeto constraints:
{ "clusterVersions": [ { "clusterVersion": "1.35", "clusterType": "eks", "defaultVersion": false, "releaseDate": "2026-01-23T00:00:00+00:00", "endOfStandardSupportDate": "2027-03-23T00:00:00+00:00", "endOfExtendedSupportDate": "2028-03-23T00:00:00+00:00", "status": "STANDARD_SUPPORT", "controlPlaneScalingTiers": [ { "tierName": "tier-xl", "apiRequestConcurrency": 2000, "podSchedulingRatePerSecond": 167, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-2xl", "apiRequestConcurrency": 4000, "podSchedulingRatePerSecond": 283, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-4xl", "apiRequestConcurrency": 8000, "podSchedulingRatePerSecond": 400, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-8xl", "apiRequestConcurrency": 16000, "podSchedulingRatePerSecond": 400, "clusterDatabaseSizeGb": 16 } ], "controlPlaneComponentConfig": { "kubeApiServerConfig": { "eventTtl": { "defaultValue": "60m", "constraints": { "min": "10m", "max": "60m" } }, "serviceNodePortRange": { "defaultValue": { "minPort": 30000, "maxPort": 32767 }, "constraints": { "minPort": {"min": 10260, "max": 32767}, "maxPort": {"min": 10260, "max": 32767} } } }, "kubeSchedulerConfig": { "nodeResourcesFit": { "scoringStrategy": { "defaultValue": { "type": "LeastAllocated", "resources": [ {"name": "cpu", "weight": 1}, {"name": "memory", "weight": 1} ] }, "constraints": { "scoringStrategy": { "allowedValues": ["LeastAllocated", "MostAllocated"] }, "resources": { "name": { "allowedValues": [ "cpu", "memory", "nvidia.com/gpu", "aws.amazon.com/neuron", "aws.amazon.com/neuroncore" ] }, "weight": {"min": 1, "max": 100} } } } } }, "kubeControllerManagerConfig": { "horizontalPodAutoscalerControllerConfig": { "horizontalPodAutoscalerSyncPeriod": { "defaultValue": "15s", "constraints": { "min": "10s", "max": "15s" } } }, "podGcControllerConfig": { "terminatedPodGcThreshold": { "defaultValue": 12500, "constraints": { "min": 10000, "max": 12500 } } } } } } ] }
A resposta anterior mostra as datas de suporte da versão, os níveis de escalabilidade do ambiente de gerenciamento provisionado e os campos de configuração do ambiente de gerenciamento. Para obter mais informações, consulte DescribeClusterVersions na Referência de API do Amazon EKS.
Para retornar somente os campos de configuração, use a opção --query:
aws eks describe-cluster-versions --cluster-versions 1.35 \ --query 'clusterVersions[0].controlPlaneComponentConfig'
Configuração do ambiente de gerenciamento: AWS CLI
Cada componente do ambiente de gerenciamento tem seu próprio parâmetro: --kube-scheduler-config, --kube-controller-manager-config e --kube-api-server-config. Você só especifica os componentes que deseja personalizar. Cada parâmetro aceita JSON embutido.
Criar um cluster com parâmetros do ambiente de gerenciamento
O comando a seguir cria um cluster que retém novos eventos do Kubernetes por 10 minutos em vez dos 60 minutos padrão. Os parâmetros que você não especifica usam seus valores padrão.
aws eks create-cluster \ --name "$CLUSTER" \ --kubernetes-version 1.35 \ --role-arn arn:aws:iam::111122223333:role/eks-service-role \ --resources-vpc-config subnetIds=subnet-abc123,subnet-def456,securityGroupIds=sg-xyz789 \ --kube-api-server-config '{ "eventTtl": "10m" }'
Resposta:
{ "cluster": { "name": "my-eks-cluster", "arn": "arn:aws:eks:us-west-2:111122223333:cluster/my-eks-cluster", "createdAt": 1709640000.0, "version": "1.35", "roleArn": "arn:aws:iam::111122223333:role/eks-service-role", "status": "CREATING", "kubeSchedulerConfig": { "nodeResourcesFit": { "scoringStrategy": { "type": "LeastAllocated" } } }, "kubeControllerManagerConfig": { "horizontalPodAutoscalerControllerConfig": { "horizontalPodAutoscalerSyncPeriod": "15s" } }, "kubeApiServerConfig": { "eventTtl": "10m", "serviceNodePortRange": { "minPort": 30000, "maxPort": 32767 } } } }
Exibir a configuração do ambiente de gerenciamento para um cluster
aws eks describe-cluster --name "$CLUSTER"
A resposta inclui kubeSchedulerConfig, kubeControllerManagerConfig e kubeApiServerConfig como campos de nível superior. Esses campos estão sempre presentes e mostram a configuração completa em execução no seu ambiente de gerenciamento, incluindo parâmetros que você não personalizou e seus valores padrão.
Para retornar a configuração de um único componente, use a opção --query:
aws eks describe-cluster --name "$CLUSTER" \ --query 'cluster.kubeSchedulerConfig'
Resposta:
{ "nodeResourcesFit": { "scoringStrategy": { "type": "LeastAllocated" } } }
Configurar a estratégia de pontuação do agendador
Por padrão, o agendador usa a estratégia LeastAllocated, que distribui os pods entre os nós. O comando a seguir o altera para MostAllocated, que prefere nós que já têm maior alocação de recursos e agrupa pods em menos nós.
aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{ "nodeResourcesFit": { "scoringStrategy": { "type": "MostAllocated" } } }'
Resposta:
{ "update": { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "status": "InProgress", "type": "ControlPlaneComponentConfigUpdate", "params": [ { "type": "kubeSchedulerConfig", "value": "{\"nodeResourcesFit\":{\"scoringStrategy\":{\"type\":\"MostAllocated\"}}}" } ], "createdAt": 1709643600.0, "errors": [] } }
Você também pode especificar uma matriz resources para ponderar recursos individuais no cálculo de pontuação, o que é útil quando um recurso específico é a restrição em seu cluster. Para obter mais informações, consulte Configuração avançada do ambiente de gerenciamento do Kubernetes.
Os outros parâmetros do ambiente de gerenciamento seguem o mesmo padrão, cada um com seu próprio sinalizador de componente: --kube-api-server-config para eventTtl e serviceNodePortRange, e --kube-controller-manager-config para o período de sincronização do Horizontal Pod Autoscaler. Para saber o que cada parâmetro faz e o que considerar antes de alterá-lo, consulte Configuração avançada do ambiente de gerenciamento do Kubernetes.
Atualize mais de um componente por vez
Você pode especificar vários parâmetros de componentes em uma única chamada:
aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{"nodeResourcesFit":{"scoringStrategy":{"type":"MostAllocated"}}}' \ --kube-api-server-config '{"eventTtl":"30m"}'
As atualizações se mesclam com sua configuração existente. Somente os campos que você especifica são alterados e os campos que você omite mantêm seus valores atuais. O comando anterior deixa a configuração do gerenciador do controlador inalterada.
Monitore uma atualização da configuração do ambiente de gerenciamento
Uma alteração na configuração não está em vigor quando update-cluster-config retorna. O Amazon EKS aplica a nova configuração por meio de uma atualização contínua do seu ambiente de gerenciamento, que leva vários minutos. Para bloquear até que a alteração seja concluída:
aws eks wait cluster-active --name "$CLUSTER"
Esse comando retorna quando o cluster atinge o status ACTIVE, normalmente em alguns minutos.
Para listar as atualizações do seu cluster:
aws eks list-updates --name "$CLUSTER"
Resposta:
{ "updateIds": [ "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" ] }
Como visualizar o status de uma atualização específica:
aws eks describe-update --name "$CLUSTER" \ --update-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
O status muda de InProgress para Successful quando a atualização é concluída, ou para Failed se ocorrer um erro. O campo errors indica o motivo de uma falha.
Configuração do ambiente de gerenciamento: Console de gerenciamento da AWS
Para configurar parâmetros avançados do ambiente de gerenciamento do Kubernetes ao criar um cluster:
-
Abra o console do Amazon EKS
. -
Selecione Criar cluster.
-
Em Opções de configuração, selecione Configuração personalizada.
-
Role para baixo até Configuração do ambiente de gerenciamento.
-
Escolha Ativar configuração do ambiente de gerenciamento.
-
Defina os parâmetros que você deseja configurar. Os parâmetros que você deixar inalterados usarão seus valores padrão.
-
Selecione outras opções de configuração do cluster conforme necessário. Na etapa final, selecione Criar cluster. A criação do cluster pode levar vários minutos para ser concluída.
Para configurar parâmetros avançados do ambiente de gerenciamento do Kubernetes em um cluster existente:
-
Abra o console do Amazon EKS
. -
Escolha o cluster que deseja atualizar.
-
Escolha a guia Visão geral e, em seguida, role para baixo até Configuração do ambiente de gerenciamento.
-
Escolha Gerenciar e, em seguida, selecione Ativar configuração do ambiente de gerenciamento para definir os parâmetros que você deseja alterar. Em seguida, escolha Salvar alterações.