Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Conceitos básicos do AWS Fargate para o seu cluster
Importante
O AWS Fargate com o Amazon EKS não está disponível para a AWS GovCloud (Leste dos EUA) e AWS GovCloud (Oeste dos EUA).
Este tópico descreve como começar a executar os Pods no AWS Fargate com o cluster do Amazon EKS.
Se você restringir o acesso ao endpoint público do cluster usando blocos CIDR, é recomendável também habilitar o acesso ao endpoint privado. Dessa forma, os Pods do Fargate podem se comunicar com o cluster. Sem o endpoint privado ativado, os blocos CIDR especificados para acesso público devem incluir as origens de saída da VPC. Para ter mais informações, consulte Controlar o acesso à rede ao endpoint do servidor de API do cluster.
Pré-requisito
Um cluster existente. Se você ainda não tem um cluster do Amazon EKS, consulte Começar a usar o Amazon EKS.
Etapa 1: verificar se os nós existentes podem se comunicar com os Pods do Fargate
Se estiver trabalhando com um novo cluster sem nós ou com um cluster que tenha somente grupos de nós gerenciados, você pode avançar para Etapa 2: criar um perfil de execução de Pod do Fargate.
Pressuponha que você esteja trabalhando com um cluster existente que já tenha nós associados a ele. Verifique se os Pods nesses nós podem se comunicar livremente com os Pods que estão em execução no Fargate. Os Pods que estão em execução no Fargate são automaticamente configurados para usar o grupo de segurança do cluster ao qual estão associados. Garanta que qualquer nó existente no cluster possa enviar e receber tráfego entre o grupo de segurança do cluster. Como Simplificar o ciclo de vida dos nós com grupos de nós gerenciados são configurados automaticamente para usar o grupo de segurança do cluster, não é necessário modificá-los nem conferir sua compatibilidade.
Para grupos de nós existentes que foram criados com eksctl
ou modelos de AWS CloudFormation gerenciados pelo Amazon EKS, você pode adicionar o grupo de segurança de cluster aos nós manualmente. Ou então, pode modificar o modelo de lançamento do grupo do Auto Scaling para o grupo de nós para anexar o grupo de segurança do cluster às instâncias. Para obter mais informações, consulte Alterar os grupos de segurança de uma instância no Guia do usuário da Amazon VPC.
Você pode conferir se há um grupo de segurança para o seu cluster no AWS Management Console, na seção Networking (Rede). Ou pode usar o comando a seguinte comando de AWS CLI. Quando usar esse comando, substitua
pelo nome de seu cluster.my-cluster
aws eks describe-cluster --name
my-cluster
--query cluster.resourcesVpcConfig.clusterSecurityGroupId
Etapa 2: criar um perfil de execução de Pod do Fargate
Quando o cluster cria Pods no AWS Fargate, os componentes que são executados na infraestrutura do Fargate devem fazer chamadas para as APIs da AWS em seu nome. A função de execução de Pod do Amazon EKS fornece as permissões do IAM para isso. Para criar uma função de execução de Pod de AWS Fargate, consulte Perfil do IAM para execução de Pod do Amazon EKS.
nota
Se você criou o cluster com o eksctl
usando a opção --fargate
, o cluster já tem uma função de execução de Pod que é possível encontrar no console do IAM com o padrão eksctl-
. Da mesma forma, se você usar o my-cluster
-FargatePodExecutionRole-ABCDEFGHIJKL
eksctl
para criar os perfis do Fargate, o eksctl
criará a função de execução de Pod, caso ela ainda não tenha sido criada.
Etapa 3: criar um perfil do Fargate para o cluster
Antes de agendar os Pods em execução no Fargate no cluster, é necessário definir um perfil do Fargate que especifique quais Pods deverão usá-lo quando forem executados. Para ter mais informações, consulte Defina quais Pods usarão o AWS Fargate quando em execução.
nota
Se você criou o cluster com o eksctl
usando a opção --fargate
, um perfil do Fargate já foi criado para o cluster com seletores para todos os Pods nos namespaces kube-system
e default
. Use o procedimento a seguir para criar perfis do Fargate para qualquer outro namespace que você deseja usar com o Fargate.
Você pode criar um perfil do Fargate usando o eksctl
ou o AWS Management Console.
Etapa 4: atualizar o CoreDNS
Por padrão, o CoreDNS é configurado para ser executado na infraestrutura do Amazon EC2 nos clusters do Amazon EKS. Se você só quiser executar os Pods no Fargate no cluster, conclua as etapas a seguir.
nota
Se você criou o cluster com o eksctl
usando a opção --fargate
, poderá avançar para Próximas etapas.
Crie um perfil do Fargate para o CoreDNS com o comando a seguir. Substitua
pelo nome do cluster,my-cluster
pelo ID da conta,111122223333
pelo nome da função de execução de Pod eAmazonEKSFargatePodExecutionRole
,0000000000000001
e0000000000000002
pelos IDs das sub-redes privadas. Se você não tiver uma função de execução de Pod, será necessário criar uma primeiro.0000000000000003
Importante
O ARN da função não pode incluir um caminho diferente de
/
. Por exemplo, se o nome da sua função fordevelopment/apps/my-role
, você precisará alterá-lo paramy-role
ao especificar o ARN da função. O formato do ARN da função deve serarn:aws:iam::
.111122223333
:role/role-name
aws eks create-fargate-profile \ --fargate-profile-name coredns \ --cluster-name
my-cluster
\ --pod-execution-role-arn arn:aws:iam::111122223333
:role/AmazonEKSFargatePodExecutionRole
\ --selectors namespace=kube-system,labels={k8s-app=kube-dns} \ --subnets subnet-0000000000000001
subnet-0000000000000002
subnet-0000000000000003
Execute e o comando a seguir para remover a anotação padrão
eks.amazonaws.com/compute-type : ec2
dos Pods do CoreDNS.kubectl patch deployment coredns \ -n kube-system \ --type json \ -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'
Próximas etapas
-
É possível começar a migrar as aplicações existentes para serem executadas no Fargate com o fluxo de trabalho a seguir.
-
Crie um perfil do Fargate que corresponda o namespace do Kubernetes da aplicação aos rótulos do Kubernetes.
-
Exclua e recrie os Pods existentes para que eles sejam agendados no Fargate. Por exemplo, o comando a seguir aciona uma implantação de
coredns
. É possível modificar o namespace e o tipo de implantação para atualizar os Pods específicos.kubectl rollout restart -n
kube-system
deployment coredns
-
-
Implante o Aplicação de roteamento e tráfego HTTP com Application Load Balancers para permitir objetos de Ingresso para os Pods em execução no Fargate.
-
É possível usar Ajustar os recursos de pods com o Vertical Pod Autoscaler para definir o tamanho correto da CPU e da memória para os Pods do Fargate e, em seguida, usar Escalar as implantações de pods com o Horizontal Pod Autoscaler para dimensionar a escala desses Pods. Se quiser que o Vertical Pod Autoscaler reimplante automaticamente os Pods no Fargate com combinações maiores de CPU e memória, defina o modo do Vertical Pod Autoscaler como
Auto
ouRecreate
. Isso ocorre para garantir a funcionalidade correta. Para obter mais informações, consulte a documentação do Vertical Pod Autoscalerno GitHub. -
Você pode configurar o coletor AWS Distro for OpenTelemetry
(ADOT) para monitoramento de aplicações seguindo estas instruções.