Instalación o actualización de los complementos de Amazon EKS - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Instalación o actualización de los complementos de Amazon EKS

Los complementos de Amazon EKS son un conjunto seleccionado de software de complemento para clústeres de Amazon EKS. Todos los complementos de Amazon EKS:

  • incluyen los parches de seguridad y correcciones de errores más recientes;

  • están validados por AWS para poder trabajar con Amazon EKS;

  • reducen la cantidad de trabajo necesaria para administrar el software complementario.

La AWS Management Console le notifica cuando hay una nueva versión disponible para un complemento de Amazon EKS. Solo tiene que iniciar la actualización y Amazon EKS actualiza el software del complemento en su nombre.

Para obtener una lista de los complementos disponibles, consulte Complementos de Amazon EKS disponibles en Amazon EKS. Para obtener más información sobre el campo de administración de Kubernetes, consulte Personalización de la configuración del complemento de Amazon EKS con la administración de campos.

Requisitos previos

Creación de un complemento

Puede crear un complemento de Amazon EKS mediante eksctl, la AWS Management Console o la AWS CLI. Si el complemento requiere un rol de IAM, consulte los detalles del complemento específico en Complementos de Amazon EKS disponibles en Amazon EKS para obtener información sobre cómo crear el rol.

eksctl
Requisito previo

La versión 0.184.0 o posterior de la herramienta de línea de comandos eksctl instalada en su dispositivo o AWS CloudShell. Para instalar o actualizar eksctl, consulte la sección de Instalación en la documentación de eksctl.

Para crear el complemento de Amazon EKS con eksctl
  1. Vea los nombres de los complementos disponibles para una versión de clúster. Reemplace 1.30 por la versión del clúster.

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

    Un ejemplo de salida sería el siguiente.

    "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. Vea las versiones disponibles para el complemento que le gustaría crear. Reemplace 1.30 por la versión del clúster. Reemplace name-of-addon por el nombre del complemento para el que desea ver las versiones. El nombre debe ser uno de los nombres que obtuvo en los pasos anteriores.

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

    El siguiente resultado es un ejemplo de lo que se devuelve para el complemento denominado vpc-cni. Puede ver que el complemento tiene varias versiones disponibles.

    "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 si el complemento que desea crear es uno de Amazon EKS o de AWS Marketplace. AWS Marketplace tiene complementos de terceros que requieren que complete pasos adicionales para crear el complemento.

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

    Si no se devuelve ningún resultado, el complemento es de Amazon EKS. Si se devuelve algún resultado, el complemento de AWS Marketplace. El siguiente resultado corresponde a un complemento denominado teleport_teleport.

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

    Puede obtener más información sobre el complemento en AWS Marketplace con la URL devuelta. Si el complemento requiere una suscripción, puede suscribirse al complemento a través de AWS Marketplace. Si va a crear un complemento desde AWS Marketplace, la entidad principal de IAM que utilice para crear el complemento debe tener permiso para crear el rol vinculado al servicio AWSServiceRoleForAWSLicenseManagerRole. Para obtener información sobre cómo asignar los permisos a una entidad principal de IAM, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de IAM.

  4. Cree un complemento de Amazon EKS. Copie el comando que sigue en su dispositivo. Realice las siguientes modificaciones en el comando según sea necesario y, a continuación, ejecute el comando modificado:

    • Reemplace my-cluster por el nombre del clúster.

    • Reemplace name-of-addon por el nombre del complemento que desea crear.

    • Si quiere una versión del complemento anterior a la versión más reciente, sustitúyala por latest con el número de versión que aparece en el resultado del paso anterior que quieras usar.

    • Si el complemento usa un rol de cuenta de servicio, sustitúyalo por 111122223333 con el ID de la cuenta y sustituya role-name por el nombre del rol. Para obtener instrucciones sobre cómo crear un rol para su cuenta de servicio, consulte la documentación del complemento que está creando. Para especificar un rol de cuenta de servicio, es necesario disponer de un proveedor de IAM OpenID Connect (OIDC) para el clúster. Para determinar si ya tiene uno para su clúster o si debe crearlo, consulte Creación de un proveedor de OIDC de IAM para su clúster.

      Si el complemento no usa un rol de cuenta de servicio, elimine --service-account-role-arn arn:aws:iam::111122223333:role/role-name.

    • Este comando de ejemplo sobrescribe la configuración de cualquier versión autoadministrada existente del complemento, si la hay. Si no quiere sobrescribir la configuración de un complemento autoadministrado existente, elimine la opción --force. Si lo hace, y el complemento de Amazon EKS necesita sobrescribir la configuración existente de un complemento autoadministrado, se produce un error en la creación del complemento de Amazon EKS y recibe un mensaje para ayudarlo a resolver el conflicto. Antes de especificar esta opción, asegúrese de que el complemento de Amazon EKS no administra la configuración que necesita administrar, ya que dicha configuración se sobrescribe con esta opción.

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

Puede ver una lista completa de las opciones disponibles para el comando.

eksctl create addon --help

Para obtener más información acerca de otras opciones, consulte Addons (Complementos) en la documentación de eksctl.

AWS Management Console
Para crear el complemento de Amazon EKS con la AWS Management Console
  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. En el panel de navegación izquierdo, seleccione Clusters (Clústeres) y, luego, seleccione el nombre del clúster para el que desea eliminar el complemento .

  3. Elija la pestaña Complementos.

  4. Escoja Obtener más complementos.

  5. Elija los complementos que desea agregar al clúster. Puede agregar tantos complementos de Amazon EKS y complementos de AWS Marketplace como necesite.

    En el caso de complementos de AWS Marketplace, la entidad principal de IAM que se utilice para crear un complemento debe tener permisos para leer los derechos del complemento desde AWS LicenseManager. AWS LicenseManager requiere el rol vinculado al servicio (SLR) AWSServiceRoleForAWSLicenseManagerRole que permite que los recursos de AWS administren las licencias en su nombre. El SLR es obligatoria una sola vez, por cuenta, y no tendrá que crear SLR independientes para cada complemento ni para cada clúster. Para obtener información sobre cómo asignar los permisos a una entidad principal de IAM, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de IAM.

    Si los complementos de AWS Marketplace que desea instalar no aparecen, puede buscar complementos disponibles escribiendo texto en el cuadro de búsqueda. En las Opciones de filtrado, también puede buscar por categoría, proveedor o modelo de precios y, a continuación, seleccionar los complementos en los resultados de la búsqueda. Una vez que haya seleccionado los complementos que desee instalar, seleccione Siguiente.

  6. En la página Configurar las opciones de complementos seleccionados:

    • Seleccione Ver opciones de suscripción para abrir el formulario Opciones de suscripción. Revise las secciones Detalles de precios y Legal y, a continuación, pulse el botón Suscribirse para continuar.

    • En Version (Versión), seleccione la versión que desee utilizar. Recomendamos la versión marcada como la más reciente, a menos que el complemento individual que está creando recomiende una versión diferente. Para determinar si un complemento tiene una versión recomendada, consulte la documentación del complemento que está creando.

    • Si todos los complementos que seleccionó tienen la opción Requiere suscripción en Estado, seleccione Siguiente. No puede seguir configurando esos complementos hasta que se haya suscrito a ellos después de crear el clúster. Para los complementos que no tienen Requires subscription (Requiere suscripción) en Status (Estado):

      • En Select IAM role (Seleccionar rol de IAM), acepte la opción predeterminada, a menos que el complemento requiera permisos de IAM. Si el complemento requiere permisos de AWS, puede seleccionar el rol de IAM del nodo (No establecido) o un rol existente que haya creado para usarlo con el complemento. Si no hay ningún rol para seleccionar, no dispone de un rol existente. Independientemente de la opción que elija, consulte la documentación del complemento que está creando para crear una política de IAM y adjuntarla a un rol. Para seleccionar un rol de IAM es necesario que tenga un proveedor de OpenID Connect (OIDC) de IAM para el clúster. Para determinar si ya tiene uno para su clúster o si debe crearlo, consulte Creación de un proveedor de OIDC de IAM para su clúster.

      • Seleccione Valores de configuración opcionales.

        • Si el complemento requiere configuración, introdúzcala en el cuadro Configuration values (Valores de configuración). Para determinar si el complemento requiere información de configuración, consulte la documentación del complemento que está creando.

        • En Conflict resolution method (Método de resolución de conflictos), seleccione una de las opciones disponibles.

      • Elija Siguiente.

  7. En la página Revisar y añadir, elija Crear. Una vez finalizada la instalación del complemento, verá los complementos instalados.

  8. Si alguno de los complementos que ha instalado requiere una suscripción, siga estos pasos:

    1. Selecciona el botón Subscribe (Suscribirse) en la esquina inferior derecha del complemento. Se lo redirigirá a la página del complemento en AWS Marketplace. Lea la información sobre el complemento, como Product Overview (Descripción general del producto) y Pricing Information (Información sobre precios).

    2. Seleccione el botón Continue to Subscribe (Continuar con la suscripción) en la parte superior derecha de la página del complemento.

    3. Lea la sección Terms and Conditions (Condiciones generales). Si está de acuerdo con ellas, seleccione Accept Terms (Aceptar las condiciones). La suscripción puede tardar varios minutos en procesarse. Mientras se procesa la suscripción, el botón Return to Amazon EKS Console (Volver a la consola de Amazon EKS) aparece en gris.

    4. Una vez que la suscripción haya terminado de procesarse, el botón Return to Amazon EKS Console (Volver a la consola de Amazon EKS) ya no aparecerá en gris. Elija el botón para volver a la pestaña Add-ons (Complementos) de la consola de Amazon EKS de su clúster.

    5. Para el complemento al que se suscribió, seleccione Remove and reinstall (Eliminar y volver a instalar) y, a continuación, elija Reinstalar el complemento (Reinstall add-on). La instalación del complemento puede tardar varios minutos. Cuando finalice la instalación, podrá configurar el complemento.

AWS CLI
Requisito previo

La versión 2.12.3 o posterior, o bien, la versión 1.27.160 o posterior de la AWS Command Line Interface (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utilice aws --version | cut -d / -f2 | cut -d ' ' -f1. Los administradores de paquetes tales como yum, apt-get o Homebrew para macOS suelen estar atrasados varias versiones respecto de la versión de la AWS CLI más reciente. Para instalar la versión más reciente, consulte Instalar, actualizar y desinstalar la AWS CLI y Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface. La versión de AWS CLI instalada en AWS CloudShell también puede estar atrasada varias versiones respecto de la versión más reciente. Para actualizarla, consulte Instalación de la AWS CLI en el directorio de inicio en la Guía del usuario de AWS CloudShell.

Para crear el complemento de Amazon EKS con la AWS CLI
  1. Determine qué complementos están disponibles. Puede ver todos los complementos disponibles, su tipo y su editor. También puede ver la URL de los complementos que están disponibles a través de AWS Marketplace. Reemplace 1.30 por la versión del clúster.

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

    Un ejemplo de salida sería el siguiente.

    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    |                                                                 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         |
    |  [...]                                                        |  [...]                        |  [...]           |  [...]       |  [...]              |
    +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+

    El resultado puede ser diferente. En el resultado de este ejemplo, hay tres complementos diferentes disponibles de tipo networking y cinco complementos con un editor de tipo eks. Es posible que los complementos con aws-marketplace que aparecen en la columna Owner requieran una suscripción antes de poder instalarlos. Puede visitar la URL para obtener más información sobre el complemento y suscribirse a él.

  2. Puede ver qué versiones están disponibles para cada complemento. Reemplace la versión 1.30 por la versión de su clúster y reemplace vpc-cni por el nombre de un complemento devuelto en el paso 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

    Un ejemplo de salida sería el siguiente.

    ------------------------------------------
    |          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   |
    +-----------------+----------------------+

    La versión con True que aparece en la columna Defaultversion es la versión con la que se creó el complemento, de forma predeterminada.

  3. (Opcional) Busque las opciones de configuración del complemento elegido ejecutando el siguiente 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\"}}}"
    }

    El resultado es un esquema JSON estándar.

    Este es un ejemplo de valores de configuración válidos, en formato JSON, que funcionan con el esquema anterior.

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

    Este es un ejemplo de valores de configuración válidos, en formato YAML, que funcionan con el esquema anterior.

      resources: 
        limits: 
          cpu: 100m    
  4. Determine si el complemento requiere permisos de IAM. Si es así, debe (1) determinar si desea utilizar las Pod Identity de EKS o los roles de IAM para las cuentas de servicio (IRSA), (2) determinar el ARN de la función de IAM que se va a utilizar con el complemento y (3) determinar el nombre de la cuenta de servicio de Kubernetes que utiliza el complemento. Puedes encontrar esta información en la documentación o mediante la API AWS, consulta Cómo recuperar información de IAM sobre un complemento.

  5. Cree un complemento de Amazon EKS. Copie el comando que sigue en su dispositivo. Realice las siguientes modificaciones en el comando según sea necesario y, a continuación, ejecute el comando modificado:

    • Reemplace my-cluster por el nombre del clúster.

    • Reemplace vpc-cni por un nombre de complemento devuelto en el paso anterior que desea crear.

    • Reemplace version-number por una versión devuelta en el paso anterior que desea usar.

    • Si el complemento no requiere permisos de IAM, elimine <service-account-configuration>.

    • Si el complemento (1) requiere permisos de IAM y (2) su clúster usa las Pod Identity de EKS, sustituya <service-account-configuration> por la siguiente asociación de Pod Identity. Sustituya <service-account-name> por el nombre de la cuenta de servicio que utiliza el complemento. Sustituya <role-arn> con el ARN de un rol de IAM. El rol debe tener la política de confianza requerida por las Pod Identity de EKS.

      • --pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
    • Si el complemento (1) requiere permisos de IAM y (2) su clúster usa IRSA, sustituya <service-account-configuration> por la siguiente configuración de IRSA. Reemplace 111122223333 por el ID de su cuenta y role-name por el nombre del rol de IAM existente que creó. Para obtener instrucciones sobre cómo crear un rol, consulte la documentación del complemento que está creando. Para especificar un rol de cuenta de servicio, es necesario disponer de un proveedor OpenID Connect (OIDC) de IAM para el clúster. Para determinar si ya tiene uno para su clúster o si debe crearlo, consulte Creación de un proveedor de OIDC de IAM para su clúster.

      • --service-account-role-arn arn:aws:iam::111122223333:role/role-name
    • Estos comandos de ejemplo sobrescriben la opción --configuration-values de cualquier versión autoadministrada existente del complemento, si la hay. Sustitúyalo por los valores de configuración que desee, como una cadena o una entrada de archivo. Si no desea proporcionar valores de configuración, elimine la opción --configuration-values. Si no quiere que la AWS CLI sobrescriba la configuración de un complemento autoadministrado existente, elimine la opción --resolve-conflicts OVERWRITE. Si lo hace, y el complemento de Amazon EKS necesita sobrescribir la configuración existente de un complemento autoadministrado, se produce un error en la creación del complemento de Amazon EKS y recibe un mensaje para ayudarlo a resolver el conflicto. Antes de especificar esta opción, asegúrese de que el complemento de Amazon EKS no administra la configuración que necesita administrar, ya que dicha configuración se sobrescribe con esta opción.

    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 ver una lista completa de las opciones ‎disponibles, consulte create-addon‎ en la Referencia de los comandos de Amazon EKS. Si el complemento que ha creado aparece en aws-marketplace en la columna Owner de un paso anterior, es posible que no se pueda crear y que reciba un mensaje de error similar al siguiente.

    { "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" [...]

    Si recibe un error similar al del resultado anterior, visite la URL del resultado del paso anterior para suscribirse al complemento. Una vez suscrito, vuelva a ejecutar el comando create-addon.

Actualización de un complemento

Amazon EKS no actualiza de forma automática el complemento cuando se lanzan versiones nuevas o después de que actualice el clúster a una nueva versión secundaria de Kubernetes. Para actualizar el complemento en un clúster existente, debe iniciar la actualización. Luego de iniciar la actualización, Amazon EKS actualiza el complemento en su nombre. Antes de actualizar un complemento, consulte la documentación actual del complemento. Para obtener una lista de los complementos disponibles, consulte Complementos de Amazon EKS disponibles en Amazon EKS. Si el complemento requiere un rol de IAM, consulte los detalles del complemento específico en Complementos de Amazon EKS disponibles en Amazon EKS para obtener información sobre cómo crear el rol.

Puede actualizar un complemento de Amazon EKS mediante eksctl, la AWS Management Console o la AWS CLI.

eksctl
Requisito previo

La versión 0.184.0 o posterior de la herramienta de línea de comandos eksctl instalada en su dispositivo o AWS CloudShell. Para Instalar o actualizar eksctl, consulte la sección de Instalación en la documentación de eksctl.

Para actualizar el complemento de Amazon EKS con eksctl
  1. Determine los complementos y las versiones actuales de los complementos instalados en su clúster. Reemplace my-cluster por el nombre del clúster.

    eksctl get addon --cluster my-cluster

    Un ejemplo de salida sería el siguiente.

    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

    El resultado puede tener un aspecto diferente, según los complementos y las versiones que tenga en su clúster. Puede ver que en el resultado del ejemplo anterior, dos complementos existentes en el clúster tienen versiones más recientes disponibles en la columna UPDATE AVAILABLE.

  2. Actualice el complemento.

    1. Copie el comando que sigue en su dispositivo. Realice las siguientes modificaciones en el comando según sea necesario:

      • Reemplace my-cluster por el nombre del clúster.

      • Reemplace region-code por la Región de AWS en la que se encuentra el clúster.

      • Reemplace vpc-cni por un nombre de complemento devuelto en el paso anterior que desea actualizar.

      • Si quiere una versión del complemento anterior a la versión más reciente, sustitúyala por latest con el número de versión que aparece en el resultado del paso anterior que desea usar. Algunos complementos tienen versiones recomendadas. Para obtener más información, consulte la documentación del complemento que está actualizando.

      • Si el complemento usa una cuenta de servicio de Kubernetes y un rol de IAM, reemplace 111122223333 por el ID de su cuenta y el role-name por el nombre de un rol de IAM existente que haya creado. Para obtener instrucciones sobre cómo crear un rol, consulte la documentación del complemento que está creando. Para especificar un rol de cuenta de servicio, es necesario disponer de un proveedor OpenID Connect (OIDC) de IAM para el clúster. Para determinar si ya tiene uno para su clúster o si debe crearlo, consulte Creación de un proveedor de OIDC de IAM para su clúster.

        Si el complemento no usa una cuenta de servicio de Kubernetes o un rol de IAM, elimine la línea serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name.

      • La opción preserve conserva los valores existentes del complemento. Si ha establecido valores personalizados para la configuración del complemento y no utiliza esta opción, Amazon EKS sobrescribe los valores con sus valores predeterminados. Si utiliza esta opción, le recomendamos que pruebe cualquier cambio de campo y valor en un clúster que no sea de producción antes de actualizar el complemento de su clúster de producción. Si cambia este valor a overwrite, todas las configuraciones cambiarán a los valores predeterminados de Amazon EKS. Si ha establecido valores personalizados para cualquier configuración, es posible que se sobrescriban con los valores predeterminados de Amazon EKS. Si cambia este valor a none, Amazon EKS no cambia el valor de ninguna configuración, pero la actualización podría fallar. Si se produce un error en la actualización, recibe un mensaje de error que lo ayuda a resolver el conflicto.

        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. Ejecute el comando modificado para crear el archivo update-addon.yaml.

    3. Aplique el archivo de configuración al clúster.

      eksctl update addon -f update-addon.yaml

    Para obtener más información acerca de cómo actualizar complementos, consulte Addons (Complementos) en la documentación de eksctl.

AWS Management Console
Para actualizar el complemento de Amazon EKS con la AWS Management Console
  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. En el panel de navegación izquierdo, seleccione Clusters (Clústeres) y, a continuación, seleccione el nombre del clúster para el que desea configurar el complemento.

  3. Elija la pestaña Complementos.

  4. Seleccione la casilla situada en la parte superior derecha del cuadro y, a continuación, elija Edit (Editar).

  5. En la página Configurar el nombre del complemento:

    • Seleccione la Version (Versión) que desea utilizar. Es posible que el complemento tenga una versión recomendada. Para obtener más información, consulte la documentación del complemento que está actualizando.

    • En Seleccionar rol de IAM, puede utilizar el rol de IAM del nodo (No establecido) o un rol existente que haya creado para usarlo con el complemento. Si no hay ningún rol para seleccionar, no dispone de un rol existente. Independientemente de la opción que elija, consulte la documentación del complemento que está creando para crear una política de IAM y adjuntarla a un rol. Para seleccionar un rol de IAM es necesario que tenga un proveedor de OpenID Connect (OIDC) de IAM para el clúster. Para determinar si ya tiene uno para su clúster o si debe crearlo, consulte Creación de un proveedor de OIDC de IAM para su clúster.

    • Para Code editor, introduzca cualquier información de configuración específica del complemento. Para obtener más información, consulte la documentación del complemento que está actualizando.

    • En Conflict resolution method (Método de resolución de conflictos), seleccione una de las opciones. Si ha establecido valores personalizados para la configuración del complemento, le recomendamos que utilice la opción Preserve (Conservar). Si no elige esta opción, Amazon EKS sobrescribe sus valores con los valores predeterminados. Si utiliza esta opción, le recomendamos que pruebe cualquier cambio de campo y valor en un clúster que no sea de producción antes de actualizar el complemento de su clúster de producción.

  6. Elija Actualizar.

AWS CLI
Requisito previo

La versión 2.12.3 o posterior, o bien, la versión 1.27.160 o posterior de la AWS Command Line Interface (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utilice aws --version | cut -d / -f2 | cut -d ' ' -f1. Los administradores de paquetes tales como yum, apt-get o Homebrew para macOS suelen estar atrasados varias versiones respecto de la versión de la AWS CLI más reciente. Para instalar la versión más reciente, consulte Instalar, actualizar y desinstalar la AWS CLI y Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface. La versión de AWS CLI instalada en AWS CloudShell también puede estar atrasada varias versiones respecto de la versión más reciente. Para actualizarla, consulte Instalación de la AWS CLI en el directorio de inicio en la Guía del usuario de AWS CloudShell.

Para actualizar el complemento de Amazon EKS con la AWS CLI
  1. Consulte la lista de complementos instalados. Reemplace my-cluster por el nombre del clúster.

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

    Un ejemplo de salida sería el siguiente.

    { "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
  2. Vea la versión actual del complemento que desea actualizar. Reemplace my-cluster por el nombre de su clúster y vpc-cni por el nombre del complemento que desea actualizar.

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

    Un ejemplo de salida sería el siguiente.

    v1.10.4-eksbuild.1
  3. Puede ver qué versiones del complemento se encuentran disponibles para la versión de su clúster. Reemplace 1.30 por la versión de su clúster y vpc-cni por el nombre del complemento que desea actualizar.

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

    Un ejemplo de salida sería el siguiente.

    ------------------------------------------
    |          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   |
    +-----------------+----------------------+

    La versión con True que aparece en la columna Defaultversion es la versión con la que se creó el complemento, de forma predeterminada.

  4. Actualice su complemento. Copie el comando que sigue en su dispositivo. Realice las siguientes modificaciones en el comando según sea necesario y, a continuación, ejecute el comando modificado.

    • Reemplace my-cluster por el nombre del clúster.

    • Reemplace vpc-cni por el nombre del complemento que desea actualizar y que se ha devuelto en el resultado de un paso anterior.

    • Reemplace version-number por una versión devuelta en el resultado del paso anterior que a la que desea actualizar. Algunos complementos tienen versiones recomendadas. Para obtener más información, consulte la documentación del complemento que está actualizando.

    • Si el complemento usa una cuenta de servicio de Kubernetes y un rol de IAM, reemplace 111122223333 por el ID de su cuenta y el role-name por el nombre de un rol de IAM existente que haya creado. Para obtener instrucciones sobre cómo crear un rol, consulte la documentación del complemento que está creando. Para especificar un rol de cuenta de servicio, es necesario disponer de un proveedor OpenID Connect (OIDC) de IAM para el clúster. Para determinar si ya tiene uno para su clúster o si debe crearlo, consulte Creación de un proveedor de OIDC de IAM para su clúster.

      Si el complemento no usa una cuenta de servicio de Kubernetes o un rol de IAM, elimine la línea serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name.

    • La opción --resolve-conflicts PRESERVE (CONSERVAR) conserva los valores existentes del complemento. Si ha establecido valores personalizados para la configuración del complemento y no utiliza esta opción, Amazon EKS sobrescribe los valores con sus valores predeterminados. Si utiliza esta opción, le recomendamos que pruebe cualquier cambio de campo y valor en un clúster que no sea de producción antes de actualizar el complemento de su clúster de producción. Si cambia este valor a overwrite, todas las configuraciones cambiarán a los valores predeterminados de Amazon EKS. Si ha establecido valores personalizados para cualquier configuración, es posible que se sobrescriban con los valores predeterminados de Amazon EKS. Si cambia este valor a none, Amazon EKS no cambia el valor de ninguna configuración, pero la actualización podría fallar. Si se produce un error en la actualización, recibe un mensaje de error que lo ayuda a resolver el conflicto.

    • Si desea eliminar toda la configuración personalizada, realice la actualización mediante la opción --configuration-values '{}'. Esto vuelve a establecer toda la configuración personalizada a los valores predeterminados. Si no quiere cambiar su configuración personalizada, no proporcione el indicador --configuration-values. Si desea ajustar una configuración personalizada, sustituya {} por los nuevos parámetros. Para ver una lista de parámetros, consulte el paso de visualización del esquema de configuración en la sección sobre cómo crear un 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. Compruebe el estado de la actualización. Reemplace my-cluster por el nombre de su clúster y vpc-cni por el nombre del complemento que está actualizando.

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

    Un ejemplo de salida sería el siguiente.

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

    Cuando la actualización se completa, el estado cambia a ACTIVE.

Eliminación de un complemento

Cuando elimina un complemento de Amazon EKS:

  • No hay tiempo de inactividad para la funcionalidad que proporciona el complemento.

  • Si utiliza los roles de IAM para las cuentas de servicio (IRSA) y el complemento tiene una función de IAM asociada, esta no se elimina.

  • Si utiliza las Pod Identity, se eliminarán todas las asociaciones de Pod Identity que sean propiedad del complemento. Si especifica la opción --preserve a AWS CLI, las asociaciones se conservan.

  • Amazon EKS deja de administrar la configuración del complemento.

  • La consola deja de avisarle cuando haya nuevas versiones disponibles.

  • No puede actualizar el complemento con ninguna herramienta o API de AWS.

  • Puede optar por dejar el software de complemento en el clúster para poder autoadministrar el software de complemento o puede eliminar el software de complemento del clúster. Solo debe eliminar el complemento de software si ninguno de los recursos del clúster depende de la funcionalidad que proporciona el complemento.

Puede eliminar un complemento de Amazon EKS de su clúster mediante eksctl, la AWS Management Console o la AWS CLI.

eksctl
Requisito previo

La versión 0.184.0 o posterior de la herramienta de línea de comandos eksctl instalada en su dispositivo o AWS CloudShell. Para Instalar o actualizar eksctl, consulte la sección de Instalación en la documentación de eksctl.

Para eliminar el complemento de Amazon EKS con eksctl
  1. Determine los complementos instalados en su clúster. Reemplace my-cluster por el nombre del clúster.

    eksctl get addon --cluster my-cluster

    Un ejemplo de salida sería el siguiente.

    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 [...]

    El resultado puede tener un aspecto diferente, según los complementos y las versiones que tenga en su clúster.

  2. Elimine el complemento. Reemplace my-cluster por el nombre de su clúster y name-of-add-on por el nombre del complemento que obtuvo en la salida del paso anterior que desea eliminar. Si elimina la opción --preserve, además de que Amazon EKS deja de administrar el complemento, se quita el software del complemento se quita el software de complemento del clúster.

    eksctl delete addon --cluster my-cluster --name name-of-addon --preserve
AWS Management Console
Cómo eliminar el complemento de Amazon EKS con la AWS Management Console
  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. En el panel de navegación izquierdo, seleccione Clusters (Clústeres) y, a continuación, seleccione el nombre del clúster para el que desea eliminar el complemento de Amazon EKS.

  3. Elija la pestaña Complementos.

  4. Seleccione la casilla de verificación situada en la parte superior derecha del cuadro de complemento y, a continuación, elija Remove (Eliminar). Seleccione Preserve on cluster (Conservar en el clúster) si desea que Amazon EKS deje de administrar la configuración del complemento, pero desea retener el software de complemento en el clúster para poder autoadministrar toda la configuración del complemento. Escriba el nombre del complemento y, a continuación, seleccione Remove (Eliminar).

AWS CLI
Requisito previo

La versión 0.184.0 o posterior de la herramienta de línea de comandos eksctl instalada en su dispositivo o AWS CloudShell. Para Instalar o actualizar eksctl, consulte la sección de Instalación en la documentación de eksctl.

Para eliminar el complemento de Amazon EKS con la AWS CLI
  1. Consulte la lista de complementos instalados. Reemplace my-cluster por el nombre del clúster.

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

    Un ejemplo de salida sería el siguiente.

    { "addons": [ "coredns", "kube-proxy", "vpc-cni", "name-of-addon" ] }
  2. Elimine el complemento instalado. Reemplace my-cluster por el nombre de su clúster y name-of-add-on por el nombre del complemento que desea eliminar. Al eliminar --preserve, se elimina el software de complemento del clúster.

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

    A continuación se muestra el ejemplo abreviado de salida.

    { "addon": { "addonName": "name-of-add-on", "clusterName": "my-cluster", "status": "DELETING", [...]
  3. Compruebe el estado de la tarea de eliminación. Reemplace my-cluster por el nombre de su clúster y name-of-addon por el nombre del complemento que está eliminando.

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

    El resultado del ejemplo una vez eliminado el complemento es el siguiente.

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

Recuperación de la compatibilidad de las versiones del complemento

Use la API de describe-addon-verisionspara enumerar las versiones disponibles de los complementos de EKS y las versiones de Kubernetes que admite cada versión del complemento.

Recuperación de la compatibilidad de las versiones del complemento (AWS CLI)
  1. Compruebe que la AWS CLI esté instalada y funcione con aws sts get-caller-identity. Si este comando no funciona, obtenga información sobre cómo comenzar a utilizar la AWS CLI.

  2. Determine el nombre del complemento del que desea recuperar la información de compatibilidad de versiones; por ejemplo, amazon-cloudwatch-observability.

  3. Determine la versión de Kubernetes del clúster, como 1.28.

  4. Use la AWS CLI para recuperar versiones de complementos compatibles con la versión de Kubernetes del clúster.

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

    Un ejemplo de salida sería el siguiente.

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

    Este resultado muestra que la versión complementaria v1.5.0-eksbuild.1 es compatible con la versión 1.28 del clúster de Kubernetes.