Atualizar o Amazon VPC CNI (complemento do Amazon EKS) - Amazon EKS

Atualizar o Amazon VPC CNI (complemento do Amazon EKS)

Atualize o tipo do Amazon EKS do complemento Amazon VPC CNI plugin for Kubernetes. Se você não tiver adicionado o tipo de complemento do Amazon EKS ao seu cluster, poderá instalá-lo seguindo Criação do CNI do Amazon VPC (complemento do Amazon EKS). Ou atualize o outro tipo de instalação do VPC CNI seguindo Atualização do Amazon VPC CNI (complemento autogerenciado).

  1. Veja qual versão do complemento está atualmente instalada no cluster. Substitua my-cluster pelo nome do cluster.

    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.16.4-eksbuild.2

    Compare a versão com a tabela de versões mais recentes em Versões do Amazon VPC CNI. Se a versão retornada for a mesma da versão Kubernetes do cluster na tabela de versões mais recente, você já tem a versão mais recente instalada no cluster e não precisa concluir o restante desse procedimento. Se você receber um erro, em vez de um número de versão no resultado, você não tem o tipo Amazon EKS do complemento instalado no cluster. Você precisa criar o complemento antes de poder atualizá-lo com este procedimento. Para criar o tipo Amazon EKS do complemento VPC CNI, você pode seguir Criação do CNI do Amazon VPC (complemento do Amazon EKS).

  2. Salve a configuração do complemento instalado atualmente.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  3. Atualize seu complemento usando a AWS CLI. Se você quiser usar o AWS Management Console ou eksctl para atualizar o complemento, consulte Atualizar 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 my-cluster pelo nome do cluster.

    • Substitua v1.19.0-eksbuild.1 pela versão mais recente listada na tabela das versões mais recentes da versão do seu cluster.

    • Substitua 111122223333 pelo ID da sua conta e AmazonEKSVPCCNIRole pelo nome do perfil do IAM existente que você criou. Para criar um perfil do IAM para a VPC CNI, consulte Etapa 1: Criar o perfil do IAM Amazon VPC CNI plugin for Kubernetes. A especificação de um perfil 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.

    • A opção --resolve-conflicts PRESERVE preserva os valores de configuração 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ê não estiver atualizando uma configuração, remova --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}' do comando. Se você estiver atualizando uma configuração, substitua "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} pela configuração que você quiser definir. Neste exemplo, a variável de ambiente AWS_VPC_K8S_CNI_EXTERNALSNAT é definida como true. O valor que você especificar deve ser válido para o esquema da configuração. Se você não conhece o esquema de configuração, execute aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.19.0-eksbuild.1, replacing v1.19.0-eksbuild.1 with the version number of the add-on that you want to see the configuration for. The schema is returned in the output. If you have any existing custom configuration, want to remove it all, and set the values for all settings back to Amazon EKS defaults, remove "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} from the command, so that you have empty {}. For an explanation of each setting, see CNI Configuration Variables on GitHub.

      aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.19.0-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'

      Pode levar alguns segundos para que a atualização seja concluída.

  4. Confirme se a versão do complemento foi atualizada. Substitua my-cluster pelo nome do cluster.

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

    Pode levar alguns segundos para que a atualização seja concluída.

    Veja um exemplo de saída abaixo.

    { "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.19.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/vpc-cni/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole", "tags": {}, "configurationValues": "{\"env\":{\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":\"true\"}}" } }