Administrar el complemento kube-proxy - Amazon EKS

Administrar el complemento kube-proxy

Kube-proxy mantiene las reglas de red en cada nodo de Amazon EC2. Permite la comunicación de red a sus pods. Kube-proxy no se implementa en nodos de Fargate. Para obtener más información, consulte kube-proxy en la documentación de Kubernetes.

La versión de kube-proxy implementada en los nodos es la misma versión principal, secundaria y de parche que se implementó con la versión de plataforma actual para la versión de Kubernetes que implementó inicialmente con el clúster. Para obtener más información, consulte Versiones de la plataforma de Amazon EKS.

Versión de kube-proxy implementada con 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
kube-proxy 1.21.2-eksbuild.2 1.20.4-eksbuild.2 1.19.6-eksbuild.2 1.18.8-eksbuild.1 1.17.9-eksbuild.1 1.16.13-eksbuild.1

Si tiene un clúster 1.18 o posterior al que no ha agregado el complemento kube-proxy de Amazon EKS, puede agregarlo mediante el procedimiento de Agregar el complemento kube-proxy de Amazon EKS. Si ha creado su clúster 1.18 o posterior con la AWS Management Console a partir del 3 de mayo de 2021, el complemento kube-proxy de Amazon EKS ya se encuentra en su clúster. Si ha creado el clúster 1.18 o posterior con cualquier otra herramienta y desea utilizar el complemento kube-proxy de Amazon EKS, debe agregarlo al clúster por su cuenta.

Si ha agregado el complemento kube-proxy de Amazon EKS a su clúster 1.18 o posterior, puede administrarlo mediante los procedimientos de las secciones Actualizar el complemento kube-proxy de Amazon EKS y Eliminar el complemento kube-proxy 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 kube-proxy de Amazon EKS, el complemento autoadministrado kube-proxy todavía se está ejecutando en el clúster. Puede actualizar de forma manual el complemento autoadministrado de kube-proxy mediante el procedimiento de Actualizar el complemento autoadministrado kube-proxy.

Agregar el complemento kube-proxy de Amazon EKS

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

importante

Antes de agregar el complemento kube-proxy 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 kube-proxy de Amazon EKS con eksctl

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

eksctl create addon --name kube-proxy --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 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 kube-proxy 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 kube-proxy 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).

    1. Seleccione kube-proxy en Name (Nombre).

    2. Seleccione la Version (Versión) que desea utilizar.

    3. 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.

    4. Seleccione Add (Agregar).

AWS CLI

Para agregar el complemento kube-proxy de Amazon EKS con la AWS CLI

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

aws eks create-addon \ --cluster-name my-cluster \ --addon-name kube-proxy \ --resolve-conflicts OVERWRITE

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 kube-proxy de Amazon EKS

Este procedimiento es para actualizar el complemento kube-proxy de Amazon EKS. Si no ha agregado el complemento kube-proxy de Amazon EKS, en su lugar complete el procedimiento en Actualizar el complemento autoadministrado kube-proxy. Amazon EKS no actualiza de forma automática el complemento kube-proxy en el clúster 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 kube-proxy en un clúster existente, debe iniciar la actualización y, a continuación, Amazon EKS actualiza el complemento en su nombre.

importante

Actualice el clúster y los nodos a una versión secundaria de Kubernetes nueva antes de actualizar kube-proxy a la misma versión secundaria que la versión secundaria del clúster actualizado.

eksctl

Para actualizar el complemento kube-proxy de Amazon EKS con eksctl

  1. Verifique la versión actual de su complemento kube-proxy de Amazon EKS. Reemplace <my-cluster> (incluido <>) con el nombre del clúster.

    eksctl get addon --name kube-proxy --cluster <my-cluster>

    Salida

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE kube-proxy v1.19.6-eksbuild.2 ACTIVE 0 v1.20.4-eksbuild.2
  2. Actualice el complemento a la versión devuelta en UPDATE AVAILABLE en el resultado del paso anterior.

    eksctl update addon \ --name kube-proxy \ --version <v1.20.4-eksbuild.2> \ --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 kube-proxy 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 kube-proxy de Amazon EKS.

  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 kube-proxy y, a continuación, elija Edit (Editar).

    1. Seleccione la Version (Versión) del complemento de Amazon EKS que desee utilizar.

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

    3. Seleccione Update (Actualizar).

AWS CLI

Para actualizar el complemento kube-proxy de Amazon EKS con la AWS CLI

  1. Verifique la versión actual de su complemento kube-proxy de Amazon EKS. Sustituya my-cluster por el nombre del clúster.

    aws eks describe-addon \ --cluster-name my-cluster \ --addon-name kube-proxy \ --query "addon.addonVersion" \ --output text

    Salida:

    v1.19.6-eksbuild.2
  2. Determine qué versiones del complemento kube-proxy se encuentran disponibles para la versión de su clúster.

    aws eks describe-addon-versions \ --addon-name kube-proxy \ --kubernetes-version 1.20 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" \ --output text

    Salida

    v1.20.4-eksbuild.2 True v1.19.6-eksbuild.2 False v1.18.8-eksbuild.1 False

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

  3. Actualice el complemento a la versión que devuelve True en el resultado del paso anterior. También puede actualizar a una versión posterior, si se devuelve en el resultado.

    aws eks update-addon \ --cluster-name my-cluster \ --addon-name kube-proxy \ --addon-version v1.20.4-eksbuild.2 \ --resolve-conflicts OVERWRITE

    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 kube-proxy 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 kube-proxy 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 kube-proxy
AWS Management Console

Para eliminar el complemento kube-proxy 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 kube-proxy 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 kube-proxy y, a continuación, elija Remove (Eliminar). El tipo kube-proxy y luego seleccione Remove (Eliminar).

AWS CLI

Para eliminar el complemento kube-proxy de Amazon EKS con la AWS CLI

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

aws eks delete-addon --cluster-name my-cluster --addon-name kube-proxy

Actualizar el complemento autoadministrado kube-proxy

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

importante

Actualice el clúster y los nodos a una versión secundaria de Kubernetes nueva antes de actualizar kube-proxy a la misma versión secundaria que la versión secundaria del clúster actualizado.

Para actualizar el complemento autoadministrado kube-proxy con kubectl

  1. Verifique la versión actual de la implementación de kube-proxy.

    kubectl get daemonset kube-proxy \ --namespace kube-system \ -o=jsonpath='{$.spec.template.spec.containers[:1].image}'

    Ejemplo de salida

    602401143452.dkr.ecr.us-west-2.amazonaws.com/eks/kube-proxy:v1.20.4-eksbuild.2
  2. Actualice el complemento kube-proxy al reemplazar 602401143452 y us-west-2 con los valores de su resultado. Reemplace 1.21.2-eksbuild.2 con la versión de kube-proxy que aparece en la versión de kube-proxy implementada con cada tabla de versiones de clúster compatible con Amazon EKS para la versión del clúster.

    kubectl set image daemonset.apps/kube-proxy \ -n kube-system \ kube-proxy=602401143452.dkr.ecr.us-west-2.amazonaws.com/eks/kube-proxy:v1.21.2-eksbuild.2
  3. (Opcional) Si utiliza nodos x86 y Arm en el mismo clúster y su clúster se implementó antes del 17 de agosto de 2020. A continuación, edite el manifiesto de kube-proxy a fin de incluir un selector de nodos para varias arquitecturas de hardware con el siguiente comando. Esta es una operación que se realiza una vez. Después de agregar el selector al manifiesto, no es necesario que lo agregue cada vez que realiza una actualización. Si el clúster se implementó a partir del 17 de agosto de 2020, kube-proxy ya cuenta con capacidad de varias arquitecturas.

    kubectl edit -n kube-system daemonset/kube-proxy

    Agregue el siguiente selector de nodos al archivo en el editor y guárdelo. Para ver un ejemplo de dónde incluir este texto en el editor, consulte el archivo de manifiesto de CNI en GitHub. Esto permite a Kubernetes extraer la imagen de hardware correcta según la arquitectura de hardware del nodo.

    - key: "beta.kubernetes.io/arch" operator: In values: - amd64 - arm64
  4. (Opcional) Si su clúster se creó originalmente con Kubernetes v1.14 o posterior, puede omitir este paso porque kube-proxy ya incluye esta Affinity Rule. Si creó originalmente un clúster de Amazon EKS con Kubernetes versión 1.13 o anterior y tiene la intención de utilizar nodos de Fargate, edite su manifiesto de kube-proxy para incluir una regla NodeAffinity a fin de evitar que se programen pods de kube-proxy en los nodos de Fargate. Esta es una edición que se realiza una vez. Una vez que agrega la Affinity Rule al manifiesto, no es necesario que la agregue cada vez que realiza una actualización del clúster. Edite el Daemonset de kube-proxy.

    kubectl edit -n kube-system daemonset/kube-proxy

    Agregue la siguiente Affinity Rule a la sección Daemonset spec del archivo en el editor y guárdelo. Para ver un ejemplo de dónde incluir este texto en el editor, consulte el archivo de manifiesto de CNI en GitHub.

    - key: eks.amazonaws.com/compute-type operator: NotIn values: - fargate