Administrar el complemento CNI de Amazon VPC - Amazon EKS

Administrar el complemento CNI de Amazon VPC

Amazon EKS admite redes VPC nativas con el complemento de interfaz de red de contenedores (CNI) de Amazon VPC para Kubernetes. Con este complemento, los pods de Kubernetes pueden tener la misma dirección IP en el pod que en la red de VPC. Para obtener más información, consulte Conexión de pods en red (CNI).

En la siguiente tabla se muestra la versión recomendada de CNI de Amazon VPC para cada versión de clúster de Kubernetes compatible. En las versiones, x indica la última versión del parche y y indica la versión de creación más reciente.

Versión recomendada del complemento CNI de Amazon VPC para cada versión de clúster compatible con Amazon EKS
Versión de Kubernetes 1.21 1.20 1.19 1.18 1,17 1.16
VPC CNI 1.9.x-eksbuild.y 1.9.x-eksbuild.y 1.9.x-eksbuild.y 1.9.x-eksbuild.y 1.9.x-eksbuild.y 1.9.x-eksbuild.y

Si tiene un clúster 1.18 o posterior al que no ha agregado el complemento CNI de Amazon VPC de Amazon EKS, puede agregarlo mediante el procedimiento de Agregar el complemento CNI de Amazon VPC de Amazon EKS. Si ha agregado el complemento CNI de Amazon VPC de Amazon EKS a su clúster 1.16 o posterior, puede administrarlo mediante los procedimientos de las secciones Actualizar el complemento CNI de Amazon VPC de Amazon EKS y Eliminar el complemento CNI de Amazon VPC de Amazon EKS. Para obtener más información sobre los complementos de Amazon EKS, consulte Complementos de Amazon EKS.

Si no ha agregado el complemento CNI de Amazon VPC de Amazon EKS, el complemento autoadministrado CNI de Amazon VPC todavía se está ejecutando en el clúster. Puede actualizar de forma manual el complemento autoadministrado de vpc-cni mediante el procedimiento de Actualizar el complemento autoadministrado CNI de Amazon VPC.

Agregar el complemento CNI de Amazon VPC de Amazon EKS

Antes de agregar este complemento, recomendamos que habilite el proveedor de OIDC para su clúster y cree un rol de IAM con la política de IAM AmazonEKS_CNI_Policy asociada, si todavía no lo hizo para este complemento. Para obtener más información, consulte Crear un proveedor de OIDC de IAM para su clúster y Configuración del complemento de CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

Seleccione la pestaña con el nombre de la herramienta que desea utilizar para agregar el complemento vpc-cni de Amazon EKS a su clúster.

importante

Antes de agregar el complemento CNI de Amazon VPC de Amazon EKS, confirme que no administra por su cuenta ninguna configuración que Amazon EKS comenzará a administrar. Para determinar qué configuración administra Amazon EKS, consulte Configuración del complemento de Amazon EKS.

eksctl

Para agregar el complemento CNI de Amazon VPC de Amazon EKS con eksctl

Reemplace my-cluster (incluido <>) con el nombre de su clúster y el ARN con el ARN de su rol de IAM existente con el suyo.

eksctl create addon \ --name vpc-cni \ --version latest \ --cluster <my-cluster> \ --service-account-role-arn arn:aws:iam::<111122223333>:role/<eksctl-my-cluster-addon-iamserviceaccount-kube-sys-Role1-UK9MQSLXK0MW> \ --force

Si quita la opción --force y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al agregar el complemento de Amazon EKS y recibe un mensaje de error 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. Para obtener más información sobre la administración de la configuración de complementos de Amazon EKS, consulte Configuración del complemento de Amazon EKS.

AWS Management Console

Para agregar el complemento CNI de Amazon VPC 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 CNI de Amazon VPC de Amazon EKS.

  3. Elija la pestaña Configuration (Configuración) y a continuación, la pestaña Add-ons (Complementos).

  4. Seleccione Add new (Agregar nuevo).

    • Seleccione vpc-cni en Name (Nombre).

    • Seleccione la Version (Versión) que desea utilizar. Recomendamos que utilice la versión marcada como Latest (Más reciente).

    • (Opcional, pero recomendado) En Service account role (Rol de cuenta de servicio), seleccione el nombre de un rol de IAM al que le ha adjuntado la política de IAM AmazonEKS_CNI_Policy. Para ello, es necesario que haya habilitado el proveedor de OIDC para el clúster y que cuente con un rol de IAM existente. Para obtener más información, consulte Crear un proveedor de OIDC de IAM para su clúster y Configuración del complemento de CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

    • Si selecciona Override existing configuration for this add-on on the cluster. (Anule la configuración existente para este complemento en el clúster.), cualquier configuración del complemento existente se puede sobrescribir con la configuración del complemento de Amazon EKS. Si no habilita esta opción y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al agregar el complemento de Amazon EKS y recibe un mensaje de error para ayudarlo a resolver el conflicto. Antes de seleccionar esta opción, asegúrese de que el complemento de Amazon EKS no administra la configuración que necesita administrar. Para obtener más información sobre la administración de la configuración de complementos de Amazon EKS, consulte Configuración del complemento de Amazon EKS.

    • Seleccione Add (Agregar).

AWS CLI

Para agregar el complemento CNI de Amazon VPC de Amazon EKS con la AWS CLI

  1. Determine qué versiones del complemento CNI de Amazon VPC de Amazon EKS se encuentran disponibles para la versión de su clúster.

    aws eks describe-addon-versions \ --addon-name vpc-cni \ --kubernetes-version 1.21 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" \ --output text

    Salida

    ... 1.8.x-eksbuild.y True ... 1.9.x-eksbuild.y False

    La versión con True debajo es la versión predeterminada implementada con clústeres nuevos.

  2. En el siguiente comando, sustituya <my-cluster> (incluido <>) con el nombre de su clúster, <AWS_ACCOUNT_ID>, con su ID de cuenta, <AmazonEKSCNIRole> con el nombre de su rol de IAM existente, <1.9.x-eksbuild.y> con la versión que desea agregar y, a continuación, ejecute el comando.

    aws eks create-addon \ --cluster-name <my-cluster> \ --addon-name vpc-cni \ --addon-version <1.9.x-eksbuild.y> \ --service-account-role-arn arn:aws:iam::<AWS_ACCOUNT_ID>:role/<AmazonEKSCNIRole> \ --resolve-conflicts OVERWRITE

    Recomendamos utilizar el --service-account-role-arn my-ARN en el comando anterior, al especificar el ARN de un rol de IAM al que ha adjuntado la política de IAM AmazonEKS_CNI_Policy. Para ello, es necesario que haya habilitado el proveedor de OIDC para el clúster y que cuente con un rol de IAM existente. Para obtener más información, consulte Crear un proveedor de OIDC de IAM para su clúster y Configuración del complemento de CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

    Si quita la opción --resolve-conflicts OVERWRITE y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al crear el complemento y recibe un mensaje de error 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. Para obtener más información sobre la administración de la configuración de complementos de Amazon EKS, consulte Configuración del complemento de Amazon EKS.

Actualizar el complemento CNI de Amazon VPC de Amazon EKS

Este procedimiento es para actualizar el complemento CNI de Amazon VPC de Amazon EKS. Si no ha agregado el complemento CNI de Amazon VPC de Amazon EKS, en su lugar complete el procedimiento en Actualizar el complemento autoadministrado CNI de Amazon VPC. Amazon EKS no actualiza de forma automática el complemento CNI de VPC cuando se lanzan versiones nuevas o después de que actualice el clúster a una versión secundaria de Kubernetes nueva. Para actualizar el complemento CNI de Amazon VPC para un clúster existente, debe iniciar la actualización y, a continuación, Amazon EKS actualiza el complemento en su nombre.

Recomendamos que actualice a la última versión del parche para la versión secundaria más reciente, pero que solo actualice una versión secundaria a la vez. Por ejemplo, si su versión actual es 1.7.x y desea actualizar a 1.9.x, primero debe actualizar a la última versión del parche de 1.8 y, a continuación, actualizar a la última versión del parche 1.9.

eksctl

Para actualizar el complemento CNI de Amazon VPC de Amazon EKS con eksctl

  1. Verifique la versión actual de su complemento vpc-cni de Amazon EKS. Sustituya <my-cluster> (incluido <>) por el nombre del clúster.

    eksctl get addon --name vpc-cni --cluster <my-cluster>

    Salida

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE vpc-cni v1.8.x-eksbuild.y ACTIVE 0 arn:aws:iam::<111122223333>:role/<eksctl-my-cluster-addon-iamserviceaccount-kube-sys-Role1-UK9MQSLXK0MW> 1.9.x-eksbuild.y
  2. Actualice el complemento a la versión devuelta en UPDATE AVAILABLE en el resultado del paso anterior.

    eksctl update addon \ --name vpc-cni \ --version <1.9.x-eksbuild.y> \ --cluster <my-cluster> \ --force

    Si quita la opción --force y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al actualizar el complemento y recibe un mensaje de error 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. Para obtener más información sobre la administración de la configuración de complementos de Amazon EKS, consulte Configuración del complemento de Amazon EKS.

AWS Management Console

Para actualizar el complemento CNI de Amazon VPC 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 actualizar el complemento CNI de Amazon VPC.

  3. Elija la pestaña Configuration (Configuración) y a continuación, la pestaña Add-ons (Complementos).

  4. Seleccione el cuadro de la parte superior derecha de vpc-cni y, a continuación, elija Edit (Editar).

    • Seleccione la Version (Versión) del complemento de Amazon EKS que desee utilizar. Recomendamos que utilice la versión marcada como Latest (Más reciente).

    • (Opcional, pero recomendado) En Service account role (Rol de cuenta de servicio), seleccione el nombre de un rol de IAM al que le ha adjuntado la política de IAM AmazonEKS_CNI_Policy, si aún no ha seleccionado uno. Para seleccionar un rol es necesario que haya habilitado el proveedor de OIDC del clúster. Para obtener más información, consulte Crear un proveedor de OIDC de IAM para su clúster y Configuración del complemento de CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

    • Si selecciona Override existing configuration for this add-on on the cluster. (Anule la configuración existente para este complemento en el clúster.), cualquier configuración del complemento existente se puede sobrescribir con la configuración del complemento de Amazon EKS. Si no habilita esta opción y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al actualizar el complemento a un complemento de Amazon EKS y recibe un mensaje de error para ayudarlo a resolver el conflicto. Antes de seleccionar esta opción, asegúrese de que el complemento de Amazon EKS no administra la configuración que necesita administrar. Para obtener más información sobre la administración de la configuración de complementos de Amazon EKS, consulte Configuración del complemento de Amazon EKS.

    • Seleccione Update (Actualizar).

AWS CLI

Para actualizar el complemento CNI de Amazon VPC de Amazon EKS con la AWS CLI

  1. Consulte la versión actual de su complemento CNI de Amazon VPC de Amazon EKS. Sustituya my-cluster por el nombre del clúster.

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

    Salida:

    1.7.0
  2. Determine qué versiones del complemento CNI de Amazon VPC de Amazon EKS se encuentran disponibles para la versión de su clúster.

    aws eks describe-addon-versions \ --addon-name vpc-cni \ --kubernetes-version 1.21 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" \ --output text

    Salida

    ... 1.8.x-eksbuild.y True ... 1.9.x-eksbuild.y False

    La versión con True debajo es la versión predeterminada implementada con clústeres nuevos.

  3. Actualice el complemento a la última versión del parche de la última versión secundaria devuelta en el resultado anterior.

    aws eks update-addon \ --cluster-name my-cluster \ --addon-name vpc-cni \ --addon-version 1.9.x-eksbuild.y \ --resolve-conflicts OVERWRITE

    Recomendamos agregar --service-account-role-arn my-ARN al comando anterior, al especificar el ARN de un rol de IAM al que ha adjuntado la política de IAM AmazonEKS_CNI_Policy. Para ello, es necesario que haya habilitado el proveedor de OIDC del clúster. Para obtener más información, consulte Crear un proveedor de OIDC de IAM para su clúster y Configuración del complemento de CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

    Si quita la opción --resolve-conflicts OVERWRITE y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al actualizar el complemento y recibe un mensaje de error 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. Para obtener más información sobre la administración de la configuración de complementos de Amazon EKS, consulte Configuración del complemento de Amazon EKS.

Eliminar el complemento CNI de Amazon VPC de Amazon EKS

importante

Al eliminar el complemento de Amazon EKS de su clúster, se eliminan sus pods del clúster, no solo la configuración administrada por Amazon EKS. Solo debe eliminar el complemento de Amazon EKS del clúster si ninguno de los pods del clúster depende de la funcionalidad que proporciona el complemento. Después de eliminar el complemento de Amazon EKS, puede agregarlo de nuevo si lo desea.

eksctl

Para eliminar el complemento CNI de Amazon VPC de Amazon EKS con eksctl

Reemplace my-cluster (incluido <>) con el nombre de su clúster y ejecute el siguiente comando.

eksctl delete addon --cluster <my-cluster> --name vpc-cni
AWS Management Console

Para eliminar el complemento CNI de Amazon VPC 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 CNI de Amazon VPC de Amazon EKS.

  3. Elija la pestaña Configuration (Configuración) y a continuación, la pestaña Add-ons (Complementos).

  4. Seleccione la casilla de verificación en la parte superior derecha de la casilla vpc-cni y, a continuación, elija Remove (Eliminar). El tipo vpc-cni y luego seleccione Remove (Eliminar).

AWS CLI

Para eliminar el complemento CNI de Amazon VPC de Amazon EKS con la AWS CLI

Sustituya my-cluster por el nombre de su clúster.

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

Actualizar el complemento autoadministrado CNI de Amazon VPC

Si tiene un clúster 1.17 o anterior, o un clúster 1.18 o posterior al que no ha agregado el complemento CNI de Amazon VPC de Amazon EKS, siga los siguientes pasos para actualizar el complemento. Si ha agregado el complemento CNI de Amazon VPC de Amazon EKS, en su lugar complete el procedimiento en Actualizar el complemento CNI de Amazon VPC de Amazon EKS.

Para actualizar el complemento autoadministrado CNI de Amazon VPC con kubectl

  1. Utilice el siguiente comando para determinar la versión del complemento CNI de Amazon VPC del clúster:

    kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2

    Salida:

    amazon-k8s-cni:1.8.x-eksbuild.y

    En este resultado de ejemplo, la versión del complemento CNI de Amazon VPC es 1.8.x-eksbuild.y, que es anterior al parche más reciente para la versión secundaria 1.9.

  2. Utilice el comando apropiado que aparece a continuación a fin de actualizar la versión del complemento CNI de Amazon VPC al parche más reciente para la versión secundaria 1.9. Puede ver la versión más reciente del parche en GitHub. Si tiene un clúster con la versión 1.18 o posterior y utiliza el complemento CNI de Amazon VPC de Amazon EKS, para actualizar el complemento, consulte Actualizar el complemento CNI de Amazon VPC de Amazon EKS.

    importante

    Cualquier cambio que haya realizado en la configuración predeterminada del complemento en el clúster se puede sobrescribir con la configuración predeterminada al aplicar la versión nueva del manifiesto. Para evitar la pérdida de la configuración personalizada, descargue el manifiesto, cambie la configuración predeterminada según sea necesario y, a continuación, aplique el manifiesto modificado al clúster. Solo debe actualizar una versión secundaria a la vez. Por ejemplo, si su versión actual es 1.7 y desea actualizar a 1.9, primero debe actualizar a 1.8 y, a continuación, actualizar a 1.9.

    • China (Pekín) (cn-north-1) o China (Ningxia) (cn-northwest-1)

      kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/release-1.9/config/v1.9/aws-k8s-cni-cn.yaml
    • AWS GovCloud (EE. UU. Este) (us-gov-east-1)

      kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/release-1.9/config/v1.9/aws-k8s-cni-us-gov-east-1.yaml
    • AWS GovCloud (EE. UU. Oeste) (us-gov-west-1)

      kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/release-1.9/config/v1.9/aws-k8s-cni-us-gov-west-1.yaml
    • Para todas las demás regiones.

      • Descargue el archivo de manifiesto.

        curl -o aws-k8s-cni.yaml https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/release-1.9/config/v1.9/aws-k8s-cni.yaml
      • Si es necesario, sustituya <region-code> en el siguiente comando con la región en la que se encuentra el clúster y, a continuación, ejecute el comando modificado para reemplazar el código de región en el archivo (actualmente us-west-2).

        sed -i.bak -e 's/us-west-2/<region-code>/' aws-k8s-cni.yaml
      • Si es necesario, sustituya <account> en el siguiente comando con la cuenta del Direcciones de imagen de contenedor de complementos de Amazon EKS de la región en la que se encuentra el clúster y, a continuación, ejecute el comando modificado para reemplazar la cuenta en el archivo (actualmente 602401143452).

        sed -i.bak -e 's/602401143452/<account>/' aws-k8s-cni.yaml
      • Aplique el archivo de manifiesto al clúster.

        kubectl apply -f aws-k8s-cni.yaml