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
-
Um cluster existente do Amazon EKS. Para implantar, consulte Conceitos básicos do Amazon EKS.
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 doeksctl
instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar oeksctl
, consulte Instalaçãona documentação do eksctl
.Para criar um complemento do Amazon EKS usando o
eksctl
-
Visualize os nomes dos complementos disponíveis para uma versão de cluster. Substitua
pela versão do cluster.1.30
eksctl utils describe-addon-versions --kubernetes-version
1.30
| grep AddonNameVeja 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", [...]
-
Visualize as versões disponíveis para o complemento que você deseja criar. Substitua
pela versão do cluster. Substitua1.30
pelo nome do complemento cujas versões você deseja visualizar. O nome deve ser um dos nomes retornados nas etapas anteriores.name-of-addon
eksctl utils describe-addon-versions --kubernetes-version
1.30
--namename-of-addon
| grep AddonVersionA 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",
-
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
--namename-of-addon
| grep ProductUrlSe 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.
-
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
pelo nome do cluster.my-cluster
-
Substitua
pelo nome do complemento que você deseja criar.name-of-addon
-
Se você quiser uma versão do complemento anterior à versão mais recente, substitua
pelo número da versão que você deseja usar, retornado na saída de uma etapa anterior.latest
-
Se o complemento usar um perfil da conta de serviço, substitua
pela ID da conta e substitua111122223333
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.role-name
Se o complemento não usar um perfil da conta de serviço, exclua
.
arn:aws:iam::--service-account-role-arn
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
. 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.--force
eksctl create addon --cluster
my-cluster
--namename-of-addon
--versionlatest
\--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
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. -
No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja criar o complemento.
-
Escolha a guia Add-ons (Complementos).
-
Escolha Obter mais complementos.
-
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).
-
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.
-
-
-
Na página Adicionar tags, escolha Criar. Depois que a instalação dos complementos for concluída, você verá os complementos instalados.
-
Se algum dos complementos que você instalou exigir uma assinatura, conclua as seguintes etapas:
-
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.
-
Selecione o botão Continue to Subscribe (Continuar a assinar) no canto superior direito da página do complemento.
-
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.
-
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.
-
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ão1.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
. Gerenciadores de pacotes, comoaws --version | cut -d / -f2 | cut -d ' ' -f1
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
-
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
pela versão do cluster.1.30
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 tipoeks
. Os complementos comaws-marketplace
na colunaOwner
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. -
Você pode ver quais versões estão disponíveis para cada complemento. Substitua
pela versão do seu cluster e substitua1.30
pelo nome de um complemento retornado na etapa anterior.vpc-cni
aws eks describe-addon-versions --kubernetes-version
--addon-name1.30
vpc-cni
\ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output tableVeja 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 colunaDefaultversion
é a versão com a qual o complemento foi criado, por padrão. -
(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-versionv1.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
-
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.
-
O Amazon EKS sugerirá o uso de Identidades de Pods do EKS se o complemento oferecer suporte a esse recurso. Isso requer que o Agente de Identidade de Pods esteja instalado no seu cluster. Para obter mais informações sobre como usar Identidades de Pods com complementos, consulte Anexe um perfil do IAM a um complemento do Amazon EKS usando a Identidade de Pods.
-
Se o complemento ou seu cluster não estiver configurado para Identidades de Pods do EKS, use o IRSA. Confirme se o IRSA está configurado no seu cluster.
-
-
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
pelo nome do cluster.my-cluster
-
Substitua
pelo nome de complemento que você deseja criar, retornado na saída da etapa anterior.vpc-cni
-
Substitua
pela versão que você deseja usar, retornada na saída da etapa anterior.version-number
-
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
pela seguinte associação de identidade de pods. Substitua<service-account-configuration>
pelo nome da conta de serviço usada pelo complemento. Substitua<service-account-name>
pelo ARN de um perfil do IAM. O perfil deve ter a política de confiança exigida pelas Identidades de Pods do EKS.<role-arn>
-
--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
pela seguinte configuração do IRSA. Substitua<service-account-configuration>
pelo ID da sua conta e111122223333
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.role-name
-
--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
. 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.--resolve-conflicts OVERWRITE
aws eks create-addon --cluster-name
my-cluster
--addon-namevpc-cni
--addon-versionversion-number
\<service-account-configuration>
--configuration-values '{"resources":{"limits":{"cpu":"100m"}}
}' --resolve-conflictsOVERWRITE
aws eks create-addon --cluster-name
my-cluster
--addon-namevpc-cni
--addon-versionversion-number
\<service-account-configuration>
--configuration-values 'file://example
.yaml' --resolve-conflictsOVERWRITE
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 tiveraws-marketplace
listado na colunaOwner
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 doeksctl
instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar oeksctl
, consulte Instalaçãona documentação do eksctl
.Para atualizar um complemento do Amazon EKS usando o
eksctl
-
Determine os complementos e as versões dos complementos instalados atualmente no cluster. Substitua o
pelo nome do cluster.my-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
. -
Atualize o complemento.
-
Copie o conteúdo a seguir no seu dispositivo. Faça as seguintes modificações no comando, conforme necessário:
-
Substitua o
pelo nome do cluster.my-cluster
-
Substitua
pela Região da AWS em que seu cluster está localizado.region-code
-
Substitua
pelo nome de complemento que você deseja atualizar, retornado na saída da etapa anterior.vpc-cni
-
Se você quiser uma versão do complemento anterior à versão mais recente, substitua
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.latest
-
Se o complemento usar uma conta de serviço Kubernetes e um perfil do IAM, substitua
pelo ID da sua conta e111122223333
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.role-name
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
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 parapreserve
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 paranone
, 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
-
-
Execute o comando modificado para criar o arquivo
update-addon.yaml
. -
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
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. -
No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster para o qual você deseja configurar o complemento.
-
Escolha a guia Add-ons (Complementos).
-
Selecione a caixa no canto superior direito da caixa do complemento e depois escolha Edit (Editar).
-
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.
-
-
Selecione Atualizar.
- AWS CLI
-
Pré-requisito
A versão
2.12.3
ou superior ou a versão1.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
. Gerenciadores de pacotes, comoaws --version | cut -d / -f2 | cut -d ' ' -f1
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
-
Veja uma lista de complementos instalados. Substitua o
pelo nome do cluster.my-cluster
aws eks list-addons --cluster-name
my-cluster
Veja um exemplo de saída abaixo.
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
Visualize a versão atual do complemento que você deseja atualizar. Substitua
pelo nome do cluster emy-cluster
pelo nome do complemento que você deseja atualizar.vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-cni
--query "addon.addonVersion" --output textVeja um exemplo de saída abaixo.
v1.10.4-eksbuild.1
-
Você pode ver quais versões do complemento estão disponíveis para a versão do cluster. Substitua
pela versão do cluster e1.30
pelo nome do complemento que você deseja atualizar.vpc-cni
aws eks describe-addon-versions --kubernetes-version
--addon-name1.30
vpc-cni
\ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output tableVeja 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 colunaDefaultversion
é a versão com a qual o complemento foi criado, por padrão. -
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
pelo nome do cluster.my-cluster
-
Substitua
pelo nome de complemento que você deseja atualizar, que foi retornado na saída da etapa anterior.vpc-cni
-
Substitua
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.version-number
-
Se o complemento usar uma conta de serviço Kubernetes e um perfil do IAM, substitua
pelo ID da sua conta e111122223333
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.role-name
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 paraoverwrite
, 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 paranone
, 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
. 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--configuration-values
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-namevpc-cni
--addon-versionversion-number
\ --service-account-role-arn arn:aws:iam::111122223333
:role/role-name
--configuration-values '{}'
--resolve-conflictsPRESERVE
-
-
Verifique o status da atualização. Substitua
pelo nome do cluster emy-cluster
pelo nome do complemento que você está atualizando.vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-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 doeksctl
instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar oeksctl
, consulte Instalaçãona documentação do eksctl
.Para excluir um complemento do Amazon EKS usando o
eksctl
-
Determine quais são os complementos instalados atualmente no cluster. Substitua o
pelo nome do cluster.my-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.
-
Exclua o complemento. Substitua
pelo nome do cluster emy-cluster
pelo nome do complemento que você deseja remover, retornado na saída da etapa anterior. Se você remover a opçãoname-of-add-on
, além de o Amazon EKS deixar de gerenciar o complemento, o software complementar será removido do cluster.--preserve
eksctl delete addon --cluster
my-cluster
--namename-of-addon
--preserve
-
- AWS Management Console
-
Para excluir um complemento do Amazon EKS usando o AWS Management Console
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. -
No painel de navegação esquerdo, selecione Clusters e depois o nome do cluster do qual você deseja remover o complemento do Amazon EKS.
-
Escolha a guia Add-ons (Complementos).
-
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 doeksctl
instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar oeksctl
, consulte Instalaçãona documentação do eksctl
.Para excluir um complemento do Amazon EKS usando a AWS CLI
-
Veja uma lista de complementos instalados. Substitua o
pelo nome do cluster.my-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
" ] } -
Exclua o complemento instalado. Substitua
pelo nome do cluster emy-cluster
pelo nome do complemento que você deseja remover. A remoção doname-of-add-on
remove o software do complemento do cluster.--preserve
aws eks delete-addon --cluster-name
my-cluster
--addon-namename-of-addon
--preserve
Veja o exemplo de saída abreviado abaixo.
{ "addon": { "addonName": "
name-of-add-on
", "clusterName": "my-cluster
", "status": "DELETING", [...] -
Verifique o status da exclusão. Substitua
pelo nome do cluster emy-cluster
pelo nome do complemento que você está removendo.name-of-addon
aws eks describe-addon --cluster-name
my-cluster
--addon-namename-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)
-
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. -
Determine o nome do complemento para o qual você deseja recuperar as informações de compatibilidade de versão, por exemplo,
amazon-cloudwatch-observability
. -
Determine a versão do Kubernetes do seu cluster, por exemplo,
1.28
. -
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-version1.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ão1.28
.