As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Complementos
Este tópico descreve como gerenciar complementos do Amazon EKS para seus clusters do Amazon EKS usando eksctl. O EKS Add-Ons é um recurso que permite habilitar e gerenciar o software operacional Kubernetes por meio da API EKS, simplificando o processo de instalação, configuração e atualização de complementos de cluster.
Atenção
O eksctl agora instala complementos padrão (vpc-cni, coredns, kube-proxy) como complementos do EKS em vez de complementos autogerenciados. Isso significa que você deve usar comandos eksctl update addon
em vez de eksctl utils update-*
comandos para clusters criados com eksctl v0.184.0 e superior.
Você pode criar clusters sem nenhum complemento de rede padrão quando quiser usar plug-ins CNI alternativos, como Cilium e Calico.
Os complementos do EKS agora oferecem suporte ao recebimento de permissões do IAM por meio do EKS Pod Identity Associations, permitindo que eles se conectem aos serviços da AWS fora do cluster
Criação de complementos
O Eksctl fornece mais flexibilidade para gerenciar complementos de cluster:
Em seu arquivo de configuração, você pode especificar os complementos que deseja e (se necessário) a função ou as políticas a serem anexadas a eles:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: example-cluster region: us-west-2 iam: withOIDC: true addons: - name: vpc-cni # all below properties are optional version: 1.7.5 tags: team: eks # you can specify at most one of: attachPolicyARNs: - arn:aws:iam::account:policy/AmazonEKS_CNI_Policy # or serviceAccountRoleARN: arn:aws:iam::account:role/AmazonEKSCNIAccess # or attachPolicy: Statement: - Effect: Allow Action: - ec2:AssignPrivateIpAddresses - ec2:AttachNetworkInterface - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:DescribeInstances - ec2:DescribeTags - ec2:DescribeNetworkInterfaces - ec2:DescribeInstanceTypes - ec2:DetachNetworkInterface - ec2:ModifyNetworkInterfaceAttribute - ec2:UnassignPrivateIpAddresses Resource: '*'
Você pode especificar no máximo um dosattachPolicy
, attachPolicyARNs
serviceAccountRoleARN
e.
Se nenhuma delas for especificada, o complemento será criado com uma função que tenha todas as políticas recomendadas anexadas.
nota
Para anexar políticas aos complementos, seu cluster deve estar OIDC
habilitado. Se não estiver habilitado, ignoramos todas as políticas anexadas.
Em seguida, você pode criar esses complementos durante o processo de criação do cluster:
eksctl create cluster -f config.yaml
Ou crie os complementos explicitamente após a criação do cluster usando o arquivo de configuração ou os sinalizadores da CLI:
eksctl create addon -f config.yaml
eksctl create addon --name vpc-cni --version 1.7.5 --service-account-role-arn <role-arn>
Durante a criação do complemento, se uma versão autogerenciada do complemento já existir no cluster, você pode escolher como os possíveis configMap
conflitos devem ser resolvidos definindo a resolveConflicts
opção por meio do arquivo de configuração, por exemplo
addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: overwrite
Para criação de complementos, o resolveConflicts
campo suporta três valores distintos:
-
none
- O EKS não altera o valor. A criação pode falhar. -
overwrite
- O EKS sobrescreve todas as alterações de configuração para os valores padrão do EKS. -
preserve
- O EKS não altera o valor. A criação pode falhar. (Da mesma formanone
, mas diferente da atualização preserve de complementos).
Listando complementos habilitados
Você pode ver quais complementos estão habilitados no seu cluster executando:
eksctl get addons --cluster <cluster-name>
or
eksctl get addons -f config.yaml
Configurando a versão do complemento
Definir a versão do complemento é opcional. Se o version
campo for deixado vazio, a versão padrão do complemento eksctl
será resolvida. Mais informações sobre qual versão é a versão padrão para complementos específicos podem ser encontradas na documentação da AWS sobre o EKS. Observe que a versão padrão pode não ser necessariamente a versão mais recente disponível.
A versão do complemento pode ser definida como. latest
Como alternativa, a versão pode ser definida com a tag de construção EKS especificada, como v1.7.5-eksbuild.1
ouv1.7.5-eksbuild.2
. Também pode ser configurado para a versão de lançamento do complemento, como v1.7.5
ou1.7.5
, e a tag de eksbuild
sufixo será descoberta e definida para você.
Veja a seção abaixo sobre como descobrir os complementos disponíveis e suas versões.
Descobrindo complementos
Você pode descobrir quais complementos estão disponíveis para instalação em seu cluster executando:
eksctl utils describe-addon-versions --cluster <cluster-name>
Isso descobrirá a versão do kubernetes do seu cluster e a filtrará. Como alternativa, se você quiser ver quais complementos estão disponíveis para uma versão específica do kubernetes, execute:
eksctl utils describe-addon-versions --kubernetes-version <version>
Você também pode descobrir complementos filtrando por seus,. type
owner
and/or publisher
Por exemplo, para ver complementos de um determinado proprietário e tipo, você pode executar:
eksctl utils describe-addon-versions --kubernetes-version 1.22 --types "infra-management, policy-management" --owners "aws-marketplace"
Os types
publishers
sinalizadores owners
e são opcionais e podem ser especificados juntos ou individualmente para filtrar os resultados.
Descobrindo o esquema de configuração para complementos
Depois de descobrir o complemento e a versão, você pode ver as opções de personalização buscando seu esquema de configuração JSON.
eksctl utils describe-addon-configuration --name vpc-cni --version v1.12.0-eksbuild.1
Isso retorna um esquema JSON das várias opções disponíveis para esse complemento.
Trabalhando com valores de configuração
ConfigurationValues
podem ser fornecidos no arquivo de configuração durante a criação ou atualização dos complementos. Somente os formatos JSON e YAML são compatíveis.
Por exemplo. ,
addons: - name: coredns configurationValues: |- replicaCount: 2
addons: - name: coredns version: latest configurationValues: "{\"replicaCount\":3}" resolveConflicts: overwrite
nota
Lembre-se de que, quando os valores de configuração do complemento forem modificados, surgirão conflitos de configuração.
Thus, we need to specify how to deal with those by setting the `resolveConflicts` field accordingly. As in this scenario we want to modify these values, we'd set `resolveConflicts: overwrite`.
Além disso, o comando get agora também será recuperado ConfigurationValues
para o complemento. por exemplo
eksctl get addon --cluster my-cluster --output yaml
- ConfigurationValues: '{"replicaCount":3}' IAMRole: "" Issues: null Name: coredns NewerVersion: "" Status: ACTIVE Version: v1.8.7-eksbuild.3
Atualizando complementos
Você pode atualizar seus complementos para versões mais recentes e alterar quais políticas estão anexadas executando:
eksctl update addon -f config.yaml
eksctl update addon --name vpc-cni --version 1.8.0 --service-account-role-arn <new-role>
Da mesma forma que na criação de um complemento, ao atualizar um complemento, você tem controle total sobre as alterações de configuração que você pode ter aplicado anteriormente nesse complemento. configMap
Especificamente, você pode preservá-los ou sobrescrevê-los. Essa funcionalidade opcional está disponível por meio do mesmo campo do arquivo de resolveConflicts
configuração. por exemplo,
addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: preserve
Para atualização do complemento, o resolveConflicts
campo aceita três valores distintos:
-
none
- O EKS não altera o valor. A atualização pode falhar. -
overwrite
- O EKS sobrescreve todas as alterações de configuração para os valores padrão do EKS. -
preserve
- O EKS preserva o valor. Se você escolher essa opção, recomendamos testar todas as alterações de campo e valor em um cluster que não seja de produção antes de atualizar o complemento em seu cluster de produção.
Excluindo complementos
Você pode excluir um complemento executando:
eksctl delete addon --cluster <cluster-name> --name <addon-name>
Isso excluirá o complemento e todas as funções do IAM associadas a ele.
Quando você exclui seu cluster, todas as funções do IAM associadas aos complementos também são excluídas.
Flexibilidade de criação de clusters para complementos de rede padrão
Quando um cluster é criado, o EKS instala automaticamente o VPC CNI, o CoreDNS e o kube-proxy como complementos autogerenciados. Para desativar esse comportamento para usar outros plug-ins CNI, como Cilium e Calico, o eksctl agora suporta a criação de um cluster sem nenhum complemento de rede padrão. Para criar esse cluster, definaaddonsConfig.disableDefaultAddons
, como em:
addonsConfig: disableDefaultAddons: true
eksctl create cluster -f cluster.yaml
Para criar um cluster somente com CoreDNS e kube-proxy e não com VPC CNI, especifique os complementos explicitamente em e defina, como em: addons
addonsConfig.disableDefaultAddons
addonsConfig: disableDefaultAddons: true addons: - name: kube-proxy - name: coredns
eksctl create cluster -f cluster.yaml
Como parte dessa mudança, o eksctl agora instala complementos padrão como complementos do EKS em vez de complementos autogerenciados durante a criação do cluster, se addonsConfig.disableDefaultAddons
não estiver explicitamente definido como verdadeiro. Dessa forma, eksctl utils update-*
os comandos não podem mais ser usados para atualizar complementos para clusters criados com eksctl v0.184.0 e superior:
-
eksctl utils update-aws-node
-
eksctl utils update-coredns
-
eksctl utils update-kube-proxy
Em vez disso, eksctl update addon
deve ser usado agora.
Para saber mais, consulte O Amazon EKS introduz a flexibilidade de criação de clusters para complementos de rede