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
-
Un clúster existente de Amazon EKS. Para implementar uno, consulte Introducción a Amazon EKS.
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 comandoseksctl
instalada en su dispositivo o AWS CloudShell. Para instalar o actualizareksctl
, consulte la sección de Instalaciónen la documentación de eksctl
.Para crear el complemento de Amazon EKS con
eksctl
-
Vea los nombres de los complementos disponibles para una versión de clúster. Reemplace
por la versión del clúster.1.30
eksctl utils describe-addon-versions --kubernetes-version
1.30
| grep AddonNameUn 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", [...]
-
Vea las versiones disponibles para el complemento que le gustaría crear. Reemplace
por la versión del clúster. Reemplace1.30
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.name-of-addon
eksctl utils describe-addon-versions --kubernetes-version
1.30
--namename-of-addon
| grep AddonVersionEl 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",
-
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
--namename-of-addon
| grep ProductUrlSi 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.
-
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
por el nombre del clúster.my-cluster
-
Reemplace
por el nombre del complemento que desea crear.name-of-addon
-
Si quiere una versión del complemento anterior a la versión más reciente, sustitúyala por
con el número de versión que aparece en el resultado del paso anterior que quieras usar.latest
-
Si el complemento usa un rol de cuenta de servicio, sustitúyalo por
con el ID de la cuenta y sustituya111122223333
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.role-name
Si el complemento no usa un rol de cuenta de servicio, elimine
.
arn:aws:iam::--service-account-role-arn
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
. 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.--force
eksctl create addon --cluster
my-cluster
--namename-of-addon
--versionlatest
\--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
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters
. -
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 .
-
Elija la pestaña Complementos.
-
Escoja Obtener más complementos.
-
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.
-
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.
-
-
-
En la página Revisar y añadir, elija Crear. Una vez finalizada la instalación del complemento, verá los complementos instalados.
-
Si alguno de los complementos que ha instalado requiere una suscripción, siga estos pasos:
-
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).
-
Seleccione el botón Continue to Subscribe (Continuar con la suscripción) en la parte superior derecha de la página del complemento.
-
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.
-
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.
-
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ón1.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
. Los administradores de paquetes tales comoaws --version | cut -d / -f2 | cut -d ' ' -f1
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
-
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
por la versión del clúster.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
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 tipoeks
. Es posible que los complementos conaws-marketplace
que aparecen en la columnaOwner
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. -
Puede ver qué versiones están disponibles para cada complemento. Reemplace la versión
por la versión de su clúster y reemplace1.30
por el nombre de un complemento devuelto en el paso 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 tableUn 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 columnaDefaultversion
es la versión con la que se creó el complemento, de forma predeterminada. -
(Opcional) Busque las opciones de configuración del complemento elegido ejecutando el siguiente 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\"}}}
" }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
-
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.
-
Amazon EKS sugiere usar las Pod Identity de EKS si el complemento lo admite. Esto requiere que el agente de Pod Identity esté instalado en el clúster. Para obtener más información sobre el uso de las Pod Identity con los complementos, consulte Adjunte un rol de IAM a un complemento de Amazon EKS mediante Pod Identity.
-
Si el complemento o el clúster no están configurados para las Pod Identity de EKS, utilice IRSA. Confirme que IRSA esté configurado en su clúster.
-
-
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
por el nombre del clúster.my-cluster
-
Reemplace
por un nombre de complemento devuelto en el paso anterior que desea crear.vpc-cni
-
Reemplace
por una versión devuelta en el paso anterior que desea usar.version-number
-
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
por la siguiente asociación de Pod Identity. Sustituya<service-account-configuration>
por el nombre de la cuenta de servicio que utiliza el complemento. Sustituya<service-account-name>
con el ARN de un rol de IAM. El rol debe tener la política de confianza requerida por las Pod Identity de EKS.<role-arn>
-
--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
por la siguiente configuración de IRSA. Reemplace<service-account-configuration>
por el ID de su cuenta y111122223333
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.role-name
-
--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
. 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.--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 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 enaws-marketplace
en la columnaOwner
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 comandoseksctl
instalada en su dispositivo o AWS CloudShell. Para Instalar o actualizareksctl
, consulte la sección de Instalaciónen la documentación de eksctl
.Para actualizar el complemento de Amazon EKS con
eksctl
-
Determine los complementos y las versiones actuales de los complementos instalados en su clúster. Reemplace
por el nombre del clúster.my-cluster
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
. -
Actualice el complemento.
-
Copie el comando que sigue en su dispositivo. Realice las siguientes modificaciones en el comando según sea necesario:
-
Reemplace
por el nombre del clúster.my-cluster
-
Reemplace
por la Región de AWS en la que se encuentra el clúster.region-code
-
Reemplace
por un nombre de complemento devuelto en el paso anterior que desea actualizar.vpc-cni
-
Si quiere una versión del complemento anterior a la versión más reciente, sustitúyala por
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.latest
-
Si el complemento usa una cuenta de servicio de Kubernetes y un rol de IAM, reemplace
por el ID de su cuenta y el111122223333
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.role-name
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
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 apreserve
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 anone
, 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
-
-
Ejecute el comando modificado para crear el archivo
update-addon.yaml
. -
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
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters
. -
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.
-
Elija la pestaña Complementos.
-
Seleccione la casilla situada en la parte superior derecha del cuadro y, a continuación, elija Edit (Editar).
-
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.
-
-
Elija Actualizar.
- AWS CLI
-
Requisito previo
La versión
2.12.3
o posterior, o bien, la versión1.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
. Los administradores de paquetes tales comoaws --version | cut -d / -f2 | cut -d ' ' -f1
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
-
Consulte la lista de complementos instalados. Reemplace
por el nombre del clúster.my-cluster
aws eks list-addons --cluster-name
my-cluster
Un ejemplo de salida sería el siguiente.
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
Vea la versión actual del complemento que desea actualizar. Reemplace
por el nombre de su clúster ymy-cluster
por el nombre del complemento que desea actualizar.vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-cni
--query "addon.addonVersion" --output textUn ejemplo de salida sería el siguiente.
v1.10.4-eksbuild.1
-
Puede ver qué versiones del complemento se encuentran disponibles para la versión de su clúster. Reemplace
por la versión de su clúster y1.30
por el nombre del complemento que desea actualizar.vpc-cni
aws eks describe-addon-versions --kubernetes-version
--addon-name1.30
vpc-cni
\ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output tableUn 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 columnaDefaultversion
es la versión con la que se creó el complemento, de forma predeterminada. -
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
por el nombre del clúster.my-cluster
-
Reemplace
por el nombre del complemento que desea actualizar y que se ha devuelto en el resultado de un paso anterior.vpc-cni
-
Reemplace
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.version-number
-
Si el complemento usa una cuenta de servicio de Kubernetes y un rol de IAM, reemplace
por el ID de su cuenta y el111122223333
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.role-name
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 aoverwrite
, 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 anone
, 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
. 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--configuration-values
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-namevpc-cni
--addon-versionversion-number
\ --service-account-role-arn arn:aws:iam::111122223333
:role/role-name
--configuration-values '{}'
--resolve-conflictsPRESERVE
-
-
Compruebe el estado de la actualización. Reemplace
por el nombre de su clúster ymy-cluster
por el nombre del complemento que está actualizando.vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-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 comandoseksctl
instalada en su dispositivo o AWS CloudShell. Para Instalar o actualizareksctl
, consulte la sección de Instalaciónen la documentación de eksctl
.Para eliminar el complemento de Amazon EKS con
eksctl
-
Determine los complementos instalados en su clúster. Reemplace
por el nombre del clúster.my-cluster
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.
-
Elimine el complemento. Reemplace
por el nombre de su clúster ymy-cluster
por el nombre del complemento que obtuvo en la salida del paso anterior que desea eliminar. Si elimina la opciónname-of-add-on
, 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.--preserve
eksctl delete addon --cluster
my-cluster
--namename-of-addon
--preserve
-
- AWS Management Console
-
Cómo eliminar el complemento de Amazon EKS con la AWS Management Console
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters
. -
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.
-
Elija la pestaña Complementos.
-
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 comandoseksctl
instalada en su dispositivo o AWS CloudShell. Para Instalar o actualizareksctl
, consulte la sección de Instalaciónen la documentación de eksctl
.Para eliminar el complemento de Amazon EKS con la AWS CLI
-
Consulte la lista de complementos instalados. Reemplace
por el nombre del clúster.my-cluster
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
" ] } -
Elimine el complemento instalado. Reemplace
por el nombre de su clúster ymy-cluster
por el nombre del complemento que desea eliminar. Al eliminarname-of-add-on
, se elimina el software de complemento del clúster.--preserve
aws eks delete-addon --cluster-name
my-cluster
--addon-namename-of-addon
--preserve
A continuación se muestra el ejemplo abreviado de salida.
{ "addon": { "addonName": "
name-of-add-on
", "clusterName": "my-cluster
", "status": "DELETING", [...] -
Compruebe el estado de la tarea de eliminación. Reemplace
por el nombre de su clúster ymy-cluster
por el nombre del complemento que está eliminando.name-of-addon
aws eks describe-addon --cluster-name
my-cluster
--addon-namename-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-verisions
para 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)
-
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. -
Determine el nombre del complemento del que desea recuperar la información de compatibilidad de versiones; por ejemplo,
amazon-cloudwatch-observability
. -
Determine la versión de Kubernetes del clúster, como
1.28
. -
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-version1.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ón1.28
del clúster de Kubernetes.