Gerenciar complementos do Amazon EKS - Amazon EKS

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.

Gerenciar complementos do Amazon EKS

Os complementos do Amazon EKS são um conjunto selecionado de software complementar para os clusters do Amazon EKS. Todos os complementos do Amazon EKS:

  • incluem os patches de segurança e as correções de erros mais recentes.

  • são validados pela AWS para funcionar com o Amazon EKS.

  • reduzem o trabalho necessário para gerenciar software complementar.

O AWS Management Console notifica você quando uma nova versão está disponível para um complemento do Amazon EKS. Você pode simplesmente iniciar a atualização, e o Amazon EKS atualizará o software complementar para você.

Para obter uma lista dos complementos disponíveis, consulte Complementos do Amazon EKS disponíveis do Amazon EKS. Para obter mais informações sobre o gerenciamento de campos do Kubernetes, consulte Gerenciamento de campos do Kubernetes

Pré-requisitos

Criar um complemento

Você pode criar um complemento do Amazon EKS usando o eksctl, o AWS Management Console ou a AWS CLI. Se o complemento exigir um perfil do IAM, consulte os detalhes do complemento específico em Complementos do Amazon EKS disponíveis do Amazon EKS para obter detalhes sobre como criar o perfil.

eksctl
Pré-requisito

Versão 0.183.0 ou posterior da ferramenta da linha de comando do eksctl instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar o eksctl, consulte Instalação na documentação do eksctl.

Para criar um complemento do Amazon EKS usando o eksctl
  1. Visualize os nomes dos complementos disponíveis para uma versão de cluster. Substitua 1.30 pela versão do cluster.

    eksctl utils describe-addon-versions --kubernetes-version 1.30 | grep AddonName

    Veja um exemplo de saída abaixo.

    "AddonName": "aws-ebs-csi-driver",
                            "AddonName": "coredns",
                            "AddonName": "kube-proxy",
                            "AddonName": "vpc-cni",
                            "AddonName": "adot",
                            "AddonName": "dynatrace_dynatrace-operator",
                            "AddonName": "upbound_universal-crossplane",
                            "AddonName": "teleport_teleport",
                            "AddonName": "factorhouse_kpow",
                            [...]
  2. Visualize as versões disponíveis para o complemento que você deseja criar. Substitua 1.30 pela versão do cluster. Substitua name-of-addon pelo nome do complemento cujas versões você deseja visualizar. O nome deve ser um dos nomes retornados nas etapas anteriores.

    eksctl utils describe-addon-versions --kubernetes-version 1.30 --name name-of-addon | grep AddonVersion

    A saída a seguir é um exemplo do que é retornado para o complemento denominado vpc-cni. Você pode ver que o complemento tem várias versões disponíveis.

    "AddonVersions": [
        "AddonVersion": "v1.12.0-eksbuild.1",
        "AddonVersion": "v1.11.4-eksbuild.1",
        "AddonVersion": "v1.10.4-eksbuild.1",
        "AddonVersion": "v1.9.3-eksbuild.1",
  3. Determine se o complemento que você deseja criar é um complemento do Amazon EKS ou um complemento do AWS Marketplace. O AWS Marketplace tem complementos de terceiros que requerem que você conclua etapas adicionais para criar o complemento.

    eksctl utils describe-addon-versions --kubernetes-version 1.30 --name name-of-addon | grep ProductUrl

    Se nenhuma saída for retornada, o complemento será um complemento do Amazon EKS. Se for retornada uma saída, o complemento será um complemento do AWS Marketplace. A saída a seguir é para um complemento denominado teleport_teleport.

    "ProductUrl": "https://aws.amazon.com/marketplace/pp?sku=3bda70bb-566f-4976-806c-f96faef18b26"

    Você pode saber mais sobre o complemento no AWS Marketplace com a URL retornada. Se o complemento exigir uma assinatura, você poderá fazer a assinatura do complemento por meio do AWS Marketplace. Se for criar um complemento no AWS Marketplace, a entidade principal do IAM que você está usando para criar o complemento deverá ter permissão para criar o perfil vinculado ao serviço AWSServiceRoleForAWSLicenseManagerRole. Para obter informações sobre como atribuir permissões a uma entidade do IAM, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

  4. Crie um complemento do Amazon EKS. Copie o conteúdo a seguir no seu dispositivo. Faça as seguintes modificações no comando, conforme necessário, e execute o comando modificado:

    • Substitua o my-cluster pelo nome do cluster.

    • Substitua name-of-addon pelo nome do complemento que você deseja criar.

    • Se você quiser uma versão do complemento anterior à versão mais recente, substitua latest pelo número da versão que você deseja usar, retornado na saída de uma etapa anterior.

    • Se o complemento usar um perfil da conta de serviço, substitua 111122223333 pela ID da conta e substitua role-name pelo nome do perfil. Para obter instruções para criar um perfil para a conta de serviço, consulte a documentação do complemento que você está criando. A especificação de um perfil da conta de serviço exige que você tenha um provedor OpenID Connect (OIDC) do IAM para o cluster. Para determinar se você já tem um ou se precisa criar um para o seu cluster, consulte Criar um provedor OIDC do IAM para o cluster.

      Se o complemento não usar um perfil da conta de serviço, exclua --service-account-role-arn arn:aws:iam::111122223333:role/role-name.

    • Esse exemplo de comando sobrescreve a configuração de qualquer versão autogerenciada do complemento existente, se houver alguma. Se você não quiser sobrescrever a configuração de um complemento autogerenciado existente, remova a opção --force. Se você remover a opção e o complemento do Amazon EKS precisar sobrescrever a configuração de um complemento autogerenciado existente, a criação do complemento do Amazon EKS falhará com uma mensagem de erro para ajudar a resolver o conflito. Antes de especificar essa opção, certifique-se de que o complemento Amazon EKS não gerencie as configurações que você precisa gerenciar, pois essas configurações são substituídas por essa opção.

      eksctl create addon --cluster my-cluster --name name-of-addon --version latest \ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --force

Você pode ver uma lista de todas as opções disponíveis para o comando.

eksctl create addon --help

Para obter mais informações sobre as opções disponíveis, consulte Addons (Complementos) na documentação do eksctl.

AWS Management Console
Para criar um complemento do Amazon EKS usando a AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  2. No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja criar o complemento.

  3. Escolha a guia Add-ons (Complementos).

  4. Escolha Obter mais complementos.

  5. Escolha os complementos que você deseja adicionar ao cluster. Você pode adicionar tantos complementos do Amazon EKS e complementos do AWS Marketplace quantos forem necessários.

    Para os complementos AWS Marketplace, o principal IAM que você está usando para criar o complemento deve ter permissões para ler as autorizações do complemento no AWS LicenseManager. AWS O LicenseManager requer o perfil vinculado ao serviço (SLR), AWSServiceRoleForAWSLicenseManagerRole que permite que os recursos da AWS gerenciem licenças em seu nome. O SLR é exigido uma única vez para cada conta, e você não precisará criar SLRs separados para cada complemento nem para cada cluster. Para obter informações sobre como atribuir permissões a uma entidade principal do IAM consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

    Se os complementos do AWS Marketplace que você quer instalar não estiverem listados, será possível pesquisar os complementos do disponíveis inserindo texto na caixa de pesquisa. Nas opções de filtragem, você também pode filtrar por categoria, fornecedor ou modelo de preços e, em seguida, escolher os complementos nos resultados da pesquisa. Após selecionar os complementos que você deseja instalar, escolha Next (Avançar).

  6. Na página Configure selected add-ons settings (Definir configurações dos complementos selecionados):

    • Escolha Exibir opções de assinatura para abrir o formulário Opções de assinatura. Revise as seções Detalhes de preços e Aspectos jurídicos e escolha o botão Inscrever-se para continuar.

    • Em Version (Versão), selecione a versão que você deseja usar. Recomendamos a versão marcada como latest (a mais recente), a menos que o complemento individual que você está criando recomende outra versão. Para determinar se um complemento tem uma versão recomendada, consulte a documentação do complemento que você está criando.

    • Se todos os complementos que você selecionou tiverem Requires subscription (Exige assinatura) em Status, selecione Next (Avançar). Você não pode continuar a configurar esses complementos até fazer uma assinatura deles depois de criar o cluster. Para os complementos que não têm Requires subscription (Exige assinatura) em Status:

      • Em Select IAM role (Selecionar perfil do IAM), aceite a opção padrão, a menos que o complemento exija permissões do IAM. Se o complemento exigir permissões da AWS, você poderá usar o perfil do IAM do nó (Não definido) ou um perfil existente criado para ser usado com o complemento. Quando não há nenhum perfil para seleção, é porque você não tem nenhum perfil existente. Independentemente da opção escolhida, consulte a documentação do complemento que você está criando para criar uma política do IAM e anexá-la a um perfil. Para selecionar um perfil do IAM, você precisa ter um provedor OpenID Connect (OIDC) do IAM para o cluster. Para determinar se você já tem um ou se precisa criar um para o seu cluster, consulte Criar um provedor OIDC do IAM para o cluster.

      • Escolha Optional configuration settings (Configurações opcionais).

        • Se o complemento exigir configuração, insira-a na caixa Configuration values (Valores de configuração). Para determinar se o complemento exige informações de configuração, consulte a documentação do complemento que você está criando.

        • Selecione uma das opções disponíveis em Conflict resolution method (Método de resolução de conflitos).

      • Escolha Próximo.

  7. Na página Adicionar tags, escolha Criar. Depois que a instalação dos complementos for concluída, você verá os complementos instalados.

  8. Se algum dos complementos que você instalou exigir uma assinatura, conclua as seguintes etapas:

    1. Escolha o botão Subscribe (Assinar) no canto inferior direito do complemento. Você será levado para a página do complemento no AWS Marketplace. Leia as informações sobre o complemento, como a visão geral do produto e as informações sobre preços.

    2. Selecione o botão Continue to Subscribe (Continuar a assinar) no canto superior direito da página do complemento.

    3. Leia todos os Terms and Conditions (Termos e condições). Se você concordar com eles, escolha Accept Terms (Aceitar termos). O processamento da assinatura pode levar alguns minutos. Enquanto a assinatura estiver sendo processada, o botão Return to Amazon EKS Console (Retornar ao console do Amazon EKS) estará acinzentado.

    4. Depois que o processamento da assinatura for concluído, o botão Return to Amazon EKS Console (Retornar ao console do Amazon EKS) não estará mais acinzentado. Escolha o botão para voltar à guia Add-ons (Complementos) do console Amazon EKS para o cluster.

    5. Para o complemento que você assinou, escolha Remove and reinstall (Remover e reinstalar) e depois escolha Reinstall add-on(Reinstalar complemento). A instalação do complemento pode levar vários minutos. Quando a instalação estiver concluída, você poderá configurar o complemento.

AWS CLI
Pré-requisito

A versão 2.12.3 ou superior ou a versão 1.27.160 ou superior da AWS Command Line Interface (AWS CLI) instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. Gerenciadores de pacotes, como yum, apt-get ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte Instalar, atualizar e desinstalar a AWS CLI e Configuração rápida com o aws configure no Guia do usuário da AWS Command Line Interface. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-la, consulte Instalar a AWS CLI no diretório inicial no Guia do usuário do AWS CloudShell.

Para criar um complemento do Amazon EKS usando a AWS CLI
  1. Determine quais complementos estão disponíveis. Você pode ver todos os complementos disponíveis, seu tipo e seu editor. Você também pode ver o URL dos complementos disponíveis por meio do AWS Marketplace. Substitua 1.30 pela versão do cluster.

    aws eks describe-addon-versions --kubernetes-version 1.30 \ --query 'addons[].{MarketplaceProductUrl: marketplaceInformation.productUrl, Name: addonName, Owner: owner Publisher: publisher, Type: type}' --output table

    Veja um exemplo de saída abaixo.

    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    |                                                                 DescribeAddonVersions                                                                 |
    +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
    |                     MarketplaceProductUrl                     |             Name              |      Owner       |  Publisher   |        Type         |
    +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
    |  None                                                         |  aws-ebs-csi-driver           |  aws             |  eks         |  storage            |
    |  None                                                         |  coredns                      |  aws             |  eks         |  networking         |
    |  None                                                         |  kube-proxy                   |  aws             |  eks         |  networking         |
    |  None                                                         |  vpc-cni                      |  aws             |  eks         |  networking         |
    |  None                                                         |  adot                         |  aws             |  eks         |  observability      |
    |  https://aws.amazon.com/marketplace/pp/prodview-brb73nceicv7u |  dynatrace_dynatrace-operator |  aws-marketplace |  dynatrace   |  monitoring         |
    |  https://aws.amazon.com/marketplace/pp/prodview-uhc2iwi5xysoc |  upbound_universal-crossplane |  aws-marketplace |  upbound     |  infra-management   |
    |  https://aws.amazon.com/marketplace/pp/prodview-hd2ydsrgqy4li |  teleport_teleport            |  aws-marketplace |  teleport    |  policy-management  |
    |  https://aws.amazon.com/marketplace/pp/prodview-vgghgqdsplhvc |  factorhouse_kpow             |  aws-marketplace |  factorhouse |  monitoring         |
    |  [...]                                                        |  [...]                        |  [...]           |  [...]       |  [...]              |
    +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+

    A sua saída pode ser diferente. Neste exemplo de saída, há três complementos diferentes disponíveis do tipo networking e cinco complementos com um editor do tipo eks. Os complementos com aws-marketplace na coluna Owner podem requerer uma assinatura antes que você possa instalá-los. Você pode visitar a URL para obter mais informações e fazer uma assinatura do complemento.

  2. Você pode ver quais versões estão disponíveis para cada complemento. Substitua 1.30 pela versão do seu cluster e substitua vpc-cni pelo nome de um complemento retornado na etapa anterior.

    aws eks describe-addon-versions --kubernetes-version 1.30 --addon-name vpc-cni \ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table

    Veja um exemplo de saída abaixo.

    ------------------------------------------
    |          DescribeAddonVersions         |
    +-----------------+----------------------+
    | Defaultversion  |       Version        |
    +-----------------+----------------------+
    |  False          |  v1.12.0-eksbuild.1  |
    |  True           |  v1.11.4-eksbuild.1  |
    |  False          |  v1.10.4-eksbuild.1  |
    |  False          |  v1.9.3-eksbuild.1   |
    +-----------------+----------------------+

    A versão com True na coluna Defaultversion é a versão com a qual o complemento foi criado, por padrão.

  3. (Opcional) Encontre as opções de configuração para o complemento escolhido executando o seguinte comando:

    aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.12.0-eksbuild.1
    {
        "addonName": "vpc-cni",
        "addonVersion": "v1.12.0-eksbuild.1",
        "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Cri\":{\"additionalProperties\":false,\"properties\":{\"hostPath\":{\"$ref\":\"#/definitions/HostPath\"}},\"title\":\"Cri\",\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CONFIGURE_RPFILTER\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"HostPath\":{\"additionalProperties\":false,\"properties\":{\"path\":{\"type\":\"string\"}},\"title\":\"HostPath\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"cri\":{\"$ref\":\"#/definitions/Cri\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"VpcCni\",\"type\":\"object\"}}}"
    }

    A saída é um esquema JSON padrão.

    Aqui está um exemplo de valores de configuração válidos, no formato JSON, que funcionam com o esquema acima.

    {
      "resources": {
        "limits": {
          "cpu": "100m"
        }
      }
    }

    Aqui está um exemplo de valores de configuração válidos, no formato YAML, que funcionam com o esquema acima.

      resources: 
        limits: 
          cpu: 100m    
  4. Determine se o complemento requer permissões do IAM. Nesse caso, você precisa (1) determinar se deseja usar identidades de pods do EKS ou perfis do IAM para contas de serviço (IRSA), (2) determinar o ARN do perfil do IAM a ser usado com o complemento e (3) determinar o nome da conta do serviço Kubernetes usada pelo complemento. É possível encontrar essas informações na documentação ou usando a API da AWS. Consulte Recuperar informações do IAM sobre um complemento.

  5. Crie um complemento do Amazon EKS. Copie o conteúdo a seguir no seu dispositivo. Faça as seguintes modificações no comando, conforme necessário, e execute o comando modificado:

    • Substitua o my-cluster pelo nome do cluster.

    • Substitua vpc-cni pelo nome de complemento que você deseja criar, retornado na saída da etapa anterior.

    • Substitua version-number pela versão que você deseja usar, retornada na saída da etapa anterior.

    • Se não houver necessidade de permissões do IAM, exclua <service-account-configuration>.

    • Se o complemento (1) exigir permissões do IAM e (2) seu cluster usar Identidades de Pods do EKS, substitua <service-account-configuration> pela seguinte associação de identidade de pods. Substitua <service-account-name> pelo nome da conta de serviço usada pelo complemento. Substitua <role-arn> pelo ARN de um perfil do IAM. O perfil deve ter a política de confiança exigida pelas Identidades de Pods do EKS.

      • --pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
    • Se o complemento (1) exigir permissões do IAM e (2) seu cluster usar o IRSA, substitua <service-account-configuration> pela seguinte configuração do IRSA. Substitua 111122223333 pelo ID da sua conta e role-name pelo nome do perfil do IAM existente que você criou. Para obter instruções para criar o perfil, consulte a documentação do complemento que você está criando. A especificação de um perfil da conta de serviço exige que você tenha um provedor OpenID Connect (OIDC) do IAM para o cluster. Para determinar se você já tem um ou se precisa criar um para o seu cluster, consulte Criar um provedor OIDC do IAM para o cluster.

      • --service-account-role-arn arn:aws:iam::111122223333:role/role-name
    • Esses comandos de exemplo substituem a opção --configuration-values de qualquer versão autogerenciada existente do complemento, se houver. Substitua isso pelos valores de configuração desejados, como uma string ou uma entrada de arquivo. Se você não deseja fornecer valores de configuração, exclua a opção --configuration-values. Se você não quiser que a AWS CLI sobrescreva a configuração de um complemento autogerenciado existente, remova a opção --resolve-conflicts OVERWRITE. Se você remover a opção e o complemento do Amazon EKS precisar sobrescrever a configuração de um complemento autogerenciado existente, a criação do complemento do Amazon EKS falhará com uma mensagem de erro para ajudar a resolver o conflito. Antes de especificar essa opção, certifique-se de que o complemento Amazon EKS não gerencie as configurações que você precisa gerenciar, pois essas configurações são substituídas por essa opção.

    aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ <service-account-configuration> --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' --resolve-conflicts OVERWRITE
    aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ <service-account-configuration> --configuration-values 'file://example.yaml' --resolve-conflicts OVERWRITE

    Para obter uma lista completa das opções disponíveis, consulte create-addon na Amazon EKS Command Line Reference (Referência da linha de comando do Amazon EKS). Se o complemento que você criou tiver aws-marketplace listado na coluna Owner de uma etapa anterior, a criação poderá falhar e você poderá receber uma mensagem de erro semelhante a que se segue.

    { "addon": { "addonName": "addon-name", "clusterName": "my-cluster", "status": "CREATE_FAILED", "addonVersion": "version", "health": { "issues": [ { "code": "AddonSubscriptionNeeded", "message": "You are currently not subscribed to this add-on. To subscribe, visit the AWS Marketplace console, agree to the seller EULA, select the pricing type if required, then re-install the add-on" [...]

    Se você receber um erro semelhante ao erro da saída anterior, visite a URL na saída de uma etapa anterior para assinar o complemento. Depois de fazer a assinatura, execute o comando create-addon novamente.

Atualizar um complemento

O Amazon EKS não atualiza automaticamente o complemento quando novas versões são lançadas nem depois que você atualiza o cluster para uma nova versão secundária do Kubernetes. Para atualizar um complemento para um cluster existente, você deve iniciar a atualização. Após a atualização ser iniciada, o Amazon EKS atualizará o complemento do Amazon EKS para você. Antes de atualizar um complemento, revise sua documentação atual. Para obter uma lista dos complementos disponíveis, consulte Complementos do Amazon EKS disponíveis do Amazon EKS. Se o complemento exigir um perfil do IAM, consulte os detalhes do complemento específico em Complementos do Amazon EKS disponíveis do Amazon EKS para obter detalhes sobre como criar o perfil.

Você pode atualizar um complemento do Amazon EKS usando eksctl, o AWS Management Console ou a AWS CLI.

eksctl
Pré-requisito

Versão 0.183.0 ou posterior da ferramenta da linha de comando do eksctl instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar o eksctl, consulte Instalação na documentação do eksctl.

Para atualizar um complemento do Amazon EKS usando o eksctl
  1. Determine os complementos e as versões dos complementos instalados atualmente no cluster. Substitua o my-cluster pelo nome do cluster.

    eksctl get addon --cluster my-cluster

    Veja um exemplo de saída abaixo.

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.7-eksbuild.2 ACTIVE 0 kube-proxy v1.23.7-eksbuild.1 ACTIVE 0 v1.23.8-eksbuild.2 vpc-cni v1.10.4-eksbuild.1 ACTIVE 0 v1.12.0-eksbuild.1,v1.11.4-eksbuild.1,v1.11.3-eksbuild.1,v1.11.2-eksbuild.1,v1.11.0-eksbuild.1

    Sua saída pode ser diferente, dependendo dos complementos e versões que você tiver no cluster. Você pode ver que, na saída do exemplo anterior, dois complementos existentes no cluster têm versões mais recentes disponíveis na coluna UPDATE AVAILABLE.

  2. Atualize o complemento.

    1. Copie o conteúdo a seguir no seu dispositivo. Faça as seguintes modificações no comando, conforme necessário:

      • Substitua o my-cluster pelo nome do cluster.

      • Substitua region-code pela Região da AWS em que seu cluster está localizado.

      • Substitua vpc-cni pelo nome de complemento que você deseja atualizar, retornado na saída da etapa anterior.

      • Se você quiser uma versão do complemento anterior à versão mais recente, substitua latest pelo número de versão que você deseja usar, retornado na saída da etapa anterior. Alguns complementos têm versões recomendadas. Para obter mais informações, consulte a documentação do complemento que você está atualizando.

      • Se o complemento usar uma conta de serviço Kubernetes e um perfil do IAM, substitua 111122223333 pelo ID da sua conta e role-name pelo nome de um perfil do função IAM existente que você criou. Para obter instruções para criar o perfil, consulte a documentação do complemento que você está criando. A especificação de um perfil da conta de serviço exige que você tenha um provedor OpenID Connect (OIDC) do IAM para o cluster. Para determinar se você já tem um ou se precisa criar um para o seu cluster, consulte Criar um provedor OIDC do IAM para o cluster.

        Se o complemento não usar uma conta de serviço do Kubernetes e um perfil do IAM, exclua a linha serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name.

      • A opção preserve mantém os valores existentes para o complemento. Se você definiu valores personalizados para as configurações do complemento e não usar essa opção, o Amazon EKS sobrescreverá seus valores pelos valores padrão. Se você usar essa opção, recomendamos testar qualquer alteração de campo e valor em um cluster que não seja de produção antes de atualizar o complemento no cluster de produção. Se você alterar esse valor para overwrite, todas as configurações serão alteradas para os valores padrão do Amazon EKS. Se você definiu valores personalizados para qualquer configuração, eles poderão ser sobrescritos pelos valores padrão do Amazon EKS. Se você alterar esse valor para none, o Amazon EKS não alterará o valor de nenhuma configuração, mas a atualização poderá falhar. Se a atualização falhar, você receberá uma mensagem de erro para ajudar a resolver o conflito.

        cat >update-addon.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code addons: - name: vpc-cni version: latest serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name resolveConflicts: preserve EOF
    2. Execute o comando modificado para criar o arquivo update-addon.yaml.

    3. Aplique o arquivo de configuração ao cluster.

      eksctl update addon -f update-addon.yaml

    Para obter mais informações sobre atualização de complementos, consulte Addons (Complementos) na documentação do eksctl.

AWS Management Console
Para atualizar o complemento do Amazon EKS usando o AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  2. No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja configurar o complemento.

  3. Escolha a guia Add-ons (Complementos).

  4. Selecione a caixa no canto superior direito da caixa do complemento e depois escolha Edit (Editar).

  5. Na página Configure name of addon (Configurar nome do complemento):

    • Selecione a Version (Versão) que você deseja usar. O complemento pode ter uma versão recomendada. Para obter mais informações, consulte a documentação do complemento que você está atualizando.

    • Em Selecionar perfil do IAM, é possível usar o perfil do IAM do nó (Não definido) ou um perfil existente criado para ser usado com o complemento. Quando não há nenhum perfil para seleção, é porque você não tem nenhum perfil existente. Independentemente da opção escolhida, consulte a documentação do complemento que você está criando para criar uma política do IAM e anexá-la a um perfil. Para selecionar um perfil do IAM, você precisa ter um provedor OpenID Connect (OIDC) do IAM para o cluster. Para determinar se você já tem um ou se precisa criar um para o seu cluster, consulte Criar um provedor OIDC do IAM para o cluster.

    • Em Code editor, insira informações sobre qualquer de configuração específica do complemento. Para obter mais informações, consulte a documentação do complemento que você está atualizando.

    • Em Conflict resolution method (Método de resolução de conflitos), selecione uma das opções. Se você definiu valores personalizados para as configurações do complemento, recomendamos escolher a opção Preserve (Manter). Se você não escolher essa opção, o Amazon EKS sobrescreverá seus valores com os valores padrão. Se você usar essa opção, recomendamos testar qualquer alteração de campo e valor em um cluster que não seja de produção antes de atualizar o complemento no cluster de produção.

  6. Selecione Atualizar.

AWS CLI
Pré-requisito

A versão 2.12.3 ou superior ou a versão 1.27.160 ou superior da AWS Command Line Interface (AWS CLI) instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. Gerenciadores de pacotes, como yum, apt-get ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte Instalar, atualizar e desinstalar a AWS CLI e Configuração rápida com o aws configure no Guia do usuário da AWS Command Line Interface. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-la, consulte Instalar a AWS CLI no diretório inicial no Guia do usuário do AWS CloudShell.

Para atualizar o complemento do Amazon EKS usando o AWS CLI
  1. Veja uma lista de complementos instalados. Substitua o my-cluster pelo nome do cluster.

    aws eks list-addons --cluster-name my-cluster

    Veja um exemplo de saída abaixo.

    { "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
  2. Visualize a versão atual do complemento que você deseja atualizar. Substitua my-cluster pelo nome do cluster e vpc-cni pelo nome do complemento que você deseja atualizar.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text

    Veja um exemplo de saída abaixo.

    v1.10.4-eksbuild.1
  3. Você pode ver quais versões do complemento estão disponíveis para a versão do cluster. Substitua 1.30 pela versão do cluster e vpc-cni pelo nome do complemento que você deseja atualizar.

    aws eks describe-addon-versions --kubernetes-version 1.30 --addon-name vpc-cni \ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table

    Veja um exemplo de saída abaixo.

    ------------------------------------------
    |          DescribeAddonVersions         |
    +-----------------+----------------------+
    | Defaultversion  |       Version        |
    +-----------------+----------------------+
    |  False          |  v1.12.0-eksbuild.1  |
    |  True           |  v1.11.4-eksbuild.1  |
    |  False          |  v1.10.4-eksbuild.1  |
    |  False          |  v1.9.3-eksbuild.1   |
    +-----------------+----------------------+

    A versão com True na coluna Defaultversion é a versão com a qual o complemento foi criado, por padrão.

  4. Atualize seu complemento. Copie o conteúdo a seguir no seu dispositivo. Faça as seguintes modificações no comando, conforme necessário, e execute o comando modificado.

    • Substitua o my-cluster pelo nome do cluster.

    • Substitua vpc-cni pelo nome de complemento que você deseja atualizar, que foi retornado na saída da etapa anterior.

    • Substitua version-number pela versão para a qual você deseja atualizar, retornada na saída da etapa anterior. Alguns complementos têm versões recomendadas. Para obter mais informações, consulte a documentação do complemento que você está atualizando.

    • Se o complemento usar uma conta de serviço Kubernetes e um perfil do IAM, substitua 111122223333 pelo ID da sua conta e role-name pelo nome de um perfil do função IAM existente que você criou. Para obter instruções para criar o perfil, consulte a documentação do complemento que você está criando. A especificação de um perfil da conta de serviço exige que você tenha um provedor OpenID Connect (OIDC) do IAM para o cluster. Para determinar se você já tem um ou se precisa criar um para o seu cluster, consulte Criar um provedor OIDC do IAM para o cluster.

      Se o complemento não usar uma conta de serviço do Kubernetes e um perfil do IAM, exclua a linha serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name.

    • A opção PRESERVE (MANTER) de --resolve-conflicts mantém os valores existentes para o complemento. Se você definiu valores personalizados para as configurações do complemento e não usar essa opção, o Amazon EKS sobrescreverá seus valores pelos valores padrão. Se você usar essa opção, recomendamos testar qualquer alteração de campo e valor em um cluster que não seja de produção antes de atualizar o complemento no cluster de produção. Se você alterar esse valor para overwrite, todas as configurações serão alteradas para os valores padrão do Amazon EKS. Se você definiu valores personalizados para qualquer configuração, eles poderão ser sobrescritos pelos valores padrão do Amazon EKS. Se você alterar esse valor para none, o Amazon EKS não alterará o valor de nenhuma configuração, mas a atualização poderá falhar. Se a atualização falhar, você receberá uma mensagem de erro para ajudar a resolver o conflito.

    • Se você deseja remover todas as configurações personalizadas, execute a atualização usando a opção --configuration-values '{}'. Isso definirá todas as configurações personalizadas aos valores padrão. Se você não deseja alterar a configuração personalizada, não forneça o sinalizador --configuration-values. Se você deseja ajustar uma configuração personalizada, substitua {} pelos novos parâmetros. Para ver uma lista de parâmetros, consulte a etapa visualizar esquema de configuração na seção sobre a criação de um complemento.

    aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --configuration-values '{}' --resolve-conflicts PRESERVE
  5. Verifique o status da atualização. Substitua my-cluster pelo nome do cluster e vpc-cni pelo nome do complemento que você está atualizando.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni

    Veja um exemplo de saída abaixo.

    { "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "UPDATING", [...]

    Quando a atualização estiver concluída, o status será ACTIVE.

Excluir um complemento

Quando você exclui um complemento do Amazon EKS:

  • Não há tempo de inatividade para a funcionalidade que o complemento fornece.

  • Se estiver usando Perfis do IAM para contas de serviço (IRSA) e não houver um perfil do IAM associado ao complemento, o perfil do IAM não será removido.

  • Se estiver usando Identidades de Pods, todas as associações de Identidades de Pods pertencentes ao complemento serão excluídas. Se você especificar a opção --preserve para a AWS CLI, as associações serão preservadas.

  • O Amazon EKS deixará de gerenciar as configurações do complemento.

  • O console deixará de notificar você quando novas versões estão disponíveis.

  • Você não poderá atualizar o complemento usando nenhuma das ferramentas ou APIs da AWS.

  • Você pode optar por deixar o software complementar no cluster para que ele seja autogerenciado ou pode remover o software complementar do cluster. Você só deverá remover o software complementar do cluster se não houver nenhum recurso no cluster que dependa da funcionalidade fornecida pelo complemento.

Você pode excluir o complemento do Amazon EKS do cluster usando o eksctl, o AWS Management Console ou a AWS CLI.

eksctl
Pré-requisito

Versão 0.183.0 ou posterior da ferramenta da linha de comando do eksctl instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar o eksctl, consulte Instalação na documentação do eksctl.

Para excluir um complemento do Amazon EKS usando o eksctl
  1. Determine quais são os complementos instalados atualmente no cluster. Substitua o my-cluster pelo nome do cluster.

    eksctl get addon --cluster my-cluster

    Veja um exemplo de saída abaixo.

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.7-eksbuild.2 ACTIVE 0 kube-proxy v1.23.7-eksbuild.1 ACTIVE 0 vpc-cni v1.10.4-eksbuild.1 ACTIVE 0 [...]

    Sua saída pode ser diferente, dependendo dos complementos e versões que você tiver no cluster.

  2. Exclua o complemento. Substitua my-cluster pelo nome do cluster e name-of-add-on pelo nome do complemento que você deseja remover, retornado na saída da etapa anterior. Se você remover a opção --preserve, além de o Amazon EKS deixar de gerenciar o complemento, o software complementar será removido do cluster.

    eksctl delete addon --cluster my-cluster --name name-of-addon --preserve
AWS Management Console
Para excluir um complemento do Amazon EKS usando o AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  2. No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster do qual você deseja remover o complemento do Amazon EKS.

  3. Escolha a guia Add-ons (Complementos).

  4. Marque a caixa de seleção no canto superior direito da caixa do complemento e depois escolha Remove (Remover). Selecione Preserve on cluster (Manter no cluster) se você quiser que o Amazon EKS pare de gerenciar as configurações do complemento, mas desejar reter o software complementar no cluster para que todas as configurações do complemento possam ser autogerenciadas. Digite o nome do complemento e selecione Remove (Remover).

AWS CLI
Pré-requisito

Versão 0.183.0 ou posterior da ferramenta da linha de comando do eksctl instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar o eksctl, consulte Instalação na documentação do eksctl.

Para excluir um complemento do Amazon EKS usando a AWS CLI
  1. Veja uma lista de complementos instalados. Substitua o my-cluster pelo nome do cluster.

    aws eks list-addons --cluster-name my-cluster

    Veja um exemplo de saída abaixo.

    { "addons": [ "coredns", "kube-proxy", "vpc-cni", "name-of-addon" ] }
  2. Exclua o complemento instalado. Substitua my-cluster pelo nome do cluster e name-of-add-on pelo nome do complemento que você deseja remover. A remoção do --preserve remove o software do complemento do cluster.

    aws eks delete-addon --cluster-name my-cluster --addon-name name-of-addon --preserve

    Veja o exemplo de saída abreviado abaixo.

    { "addon": { "addonName": "name-of-add-on", "clusterName": "my-cluster", "status": "DELETING", [...]
  3. Verifique o status da exclusão. Substitua my-cluster pelo nome do cluster e name-of-addon pelo nome do complemento que você está removendo.

    aws eks describe-addon --cluster-name my-cluster --addon-name name-of-addon

    Após a exclusão do complemento, a saída seguirá o exemplo abaixo.

    An error occurred (ResourceNotFoundException) when calling the DescribeAddon operation: No addon: name-of-addon found in cluster: my-cluster

Recuperar a compatibilidade de versões do complemento

Use a API describe-addon-verisions para listar as versões disponíveis dos complementos do EKS e quais versões do Kubernetes são compatíveis com cada versão do complemento.

Recuperar a compatibilidade de versões do complemento (AWS CLI)
  1. Verifique se a AWS CLI está instalada e funcionando com o aws sts get-caller-identity. Se esse comando não funcionar, saiba como Começar com o AWS CLI.

  2. Determine o nome do complemento para o qual você deseja recuperar as informações de compatibilidade de versão, por exemplo, amazon-cloudwatch-observability.

  3. Determine a versão do Kubernetes do seu cluster, por exemplo, 1.28.

  4. Use a AWS CLI para recuperar as versões do complemento que são compatíveis com a versão do Kubernetes do seu cluster.

    aws eks describe-addon-versions --addon-name amazon-cloudwatch-observability --kubernetes-version 1.29

    Veja um exemplo de saída abaixo.

    { "addons": [ { "addonName": "amazon-cloudwatch-observability", "type": "observability", "addonVersions": [ { "addonVersion": "v1.5.0-eksbuild.1", "architecture": [ "amd64", "arm64" ], "compatibilities": [ { "clusterVersion": "1.28", "platformVersions": [ "*" ], "defaultVersion": true } ], [...]

    Essa saída mostra que a versão do complemento v1.5.0-eksbuild.1 é compatível com o cluster do Kubernetes versão 1.28.