Criar nós Ubuntu Linux autogerenciados - Amazon EKS

Criar nós Ubuntu Linux autogerenciados

nota

Os grupos de nós gerenciados podem oferecer algumas vantagens para seu caso de uso. Para ter mais informações, consulte Simplificar o ciclo de vida dos nós com grupos de nós gerenciados.

Este tópico descreve como iniciar grupos do Auto Scaling de nós do Ubuntu no Amazon Elastic Kubernetes Service (EKS) ou do Ubuntu Pro no Amazon Elastic Kubernetes Service (EKS) que se registram no seu cluster do Amazon EKS. O Ubuntu e o Ubuntu Pro para EKS são baseados no Ubuntu Minimal LTS oficial, incluem o kernel AWS personalizado que é desenvolvido em conjunto com a AWS e foram criados especificamente para o EKS. O Ubuntu Pro acrescenta cobertura de segurança adicional ao oferecer suporte a períodos de suporte estendido do EKS, ao kernel livepatch, à conformidade com FIPS e à capacidade de executar contêineres Pro ilimitados.

Depois que os nós ingressam no cluster, você pode implantar aplicações em contêiner neles. Para obter mais informações, via documentação do Ubuntu em AWS e o suporte a AMIs personalizadas na documentação eksctl.

Importante
  • Os nós do Amazon EKS são instâncias padrão do Amazon EC2, e você é cobrado por eles com base nos preços normais das instâncias do Amazon EC2. Para obter mais informações, consulte Definição de preço do Amazon EC2.

  • Você pode iniciar nós do Ubuntu em clusters estendidos do Amazon EKS no AWS Outposts, mas não pode iniciá-los em clusters locais no AWS Outposts. Para ter mais informações, consulte Implantar o Amazon EKS on-premises com o AWS Outposts.

  • É possível implantar em instâncias do Amazon EC2 com processadores x86 ou Arm. No entanto, as instâncias que têm chips Inferentia talvez precisem instalar o Neuron SDK primeiro.

Este procedimento exige a versão eksctl 0.194.0 ou superior. Você pode verificar a versão com o seguinte comando:

eksctl version

Para obter instruções sobre como instalar ou atualizar eksctl, consulte Instalação na documentação do eksctl. OBSERVAÇÃO: esse procedimento apenas funciona para clusters que foram criados com o eksctl.

+ . Copie o conteúdo a seguir para o seu dispositivo. Substitua o my-cluster pelo nome do cluster. O nome só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfabético e não pode ter mais de 100 caracteres. Substitua ng-ubuntu por um nome para o seu grupo de nós. O nome do grupo de nós não pode exceder 63 caracteres. Deve começar com uma letra ou um dígito, mas pode incluir hifens e sublinhados para os demais caracteres. Para implantar em instâncias do Arm, substitua m5.large por um tipo de instância Arm. Substitua my-ec2-keypair-name pelo nome de um par de chaves SSH do Amazon EC2; que você pode usar para conectar-se usando SSH em seus nós, depois de iniciados. Se ainda não tiver um par de chaves do Amazon EC2, você poderá criar um no AWS Management Console. Para obter mais informações, consulte Pares de chaves do Amazon EC2, no Guia do usuário do Amazon EC2. Substitua todos os valores de exemplo restantes por seus próprios valores. Depois de fazer as substituições, execute o comando modificado para criar o arquivo ubuntu.yaml.

+ IMPORTANTE: para implantar um grupo de nós nas sub-redes AWS Outposts, AWS Wavelength ou AWS Local Zone, não passe as sub-redes AWS Outposts, AWS Wavelength ou AWS Local Zone ao criar o cluster. É necessário especificar as sub-redes no exemplo a seguir. Para obter mais informações, consulte Create a nodegroup from a config file (Criar um grupo de nós em um arquivo de configuração) e Config file schema (Esquema de arquivo de configuração) na documentação do eksctl. Substitua region-code pela região da AWS em que seu cluster se encontra.

+

cat >ubuntu.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.30' iam: withOIDC: true nodeGroups: - name: ng-ubuntu instanceType: m5.large desiredCapacity: 3 amiFamily: Ubuntu2204 ami: auto-ssm iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy ssh: allow: true publicKeyName: my-ec2-keypair-name EOF

+ Para criar um grupo de nós do Ubuntu Pro, basta alterar o valor amiFamily de UbuntuPro2204. Implante os nós com o seguinte comando.

+

eksctl create nodegroup --config-file=ubuntu.yaml

+ Veja um exemplo de saída abaixo.

+ Várias linhas são emitidas enquanto os nós são criados. Uma das últimas linha de saída é o exemplo de linha a seguir.

+

[✔] created 1 nodegroup(s) in cluster "my-cluster"
  1. (Opcional) Implante uma aplicação de amostra para testar os nós do Ubuntu.

  2. Convém bloquear o acesso para Pod ao IMDS se as condições a seguir forem verdadeiras:

    • Você planeja atribuir perfis do IAM a todas as contas de serviço do Kubernetes para que os Pods tenham apenas as permissões mínimas de que precisam.

    • Nenhum Pods no cluster exige acesso ao serviço de metadados de instância (IMDS) do Amazon EC2 por outros motivos, como recuperação da região atual da AWS.

    Para obter mais informações, consulte Restringir o acesso ao perfil da instância atribuído ao nó de processamento.