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.
Trabajar con el complemento kube-proxy
Kubernetes
importante
Recomendamos agregar el tipo de complemento de Amazon EKS al clúster en lugar de utilizar el tipo de complemento autoadministrado. Si no está familiarizado con la diferencia entre los tipos, consulte Complementos de Amazon EKS. Para obtener más información acerca de cómo agregar un complemento de Amazon EKS al clúster, consulte Creación de un complemento. Si no puede usar el complemento de Amazon EKS, le recomendamos que envíe una pregunta sobre los motivos por los que no puede hacerlo al repositorio de GitHub de la hoja de ruta de contenedores
El complemento kube-proxy
se implementa en cada nodo de Amazon EC2 del clúster de Amazon EKS. Mantiene las reglas de red en los nodos y permite la comunicación de red con los Pods. El complemento no se implementa en los nodos de Fargate del clúster. Para obtener más información, consulte kube-proxy
En la siguiente tabla se muestra la versión más reciente del tipo de complemento de Amazon EKS para cada versión de Kubernetes.
Versión de Kubernetes | 1.30 |
1.29 |
1.28 |
1.27 |
1.26 |
1.25 |
1.24 |
1.23 |
---|---|---|---|---|---|---|---|---|
v1.30.0-eksbuild.3 |
v1.29.3-eksbuild.5 |
v1.28.8-eksbuild.5 |
v1.27.12-eksbuild.5 |
v1.26.15-eksbuild.5 |
v1.25.16-eksbuild.8 |
v1.24.17-eksbuild.8 |
v1.23.17-eksbuild.9 |
importante
Una versión anterior de la documentación era incorrecta. Las versiones v1.28.5
, v1.27.9
, y v1.26.12
de kube-proxy
no están disponibles.
Si administra este complemento, es posible que las versiones de la tabla no sean las mismas que las versiones autoadministradas disponibles.
Existen dos tipos de imagen de contenedor kube-proxy
disponibles para cada versión de clúster de Amazon EKS:
-
Predeterminado: este tipo de imagen se basa en una imagen de Docker basada en Debian y mantenida por la comunidad ascendente de Kubernetes.
-
Mínimo: este tipo se basa en una imagen de base mínima
mantenida por Amazon EKS Distro, la cual contiene los paquetes mínimos y no tiene intérprete de comandos. Para obtener más información, consulte ¿Qué es Amazon EKS Distro?
Versión de imagen de contenedor de kube-proxy más reciente, autoadministrada y disponible para cada versión de clúster de Amazon EKS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Image type (Tipo de imagen) | 1.30 |
1.29 |
1.28 |
1.27 |
1.26 |
1.25 |
1.24 |
1.23 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kube-proxy (tipo predeterminado) |
Solo hay un tipo mínimo disponible | Solo hay un tipo mínimo disponible | Solo hay un tipo mínimo disponible | Solo hay un tipo mínimo disponible | Solo hay un tipo mínimo disponible | Solo hay un tipo mínimo disponible | v1.24.10-eksbuild.2 |
v1.23.16-eksbuild.2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kube-proxy (tipo mínimo) |
v1.30.0-minimal-eksbuild.3 |
v1.29.3-minimal-eksbuild.5 |
v1.28.8-minimal-eksbuild.5 |
v1.27.12-minimal-eksbuild.5 |
v1.26.15-minimal-eksbuild.5 |
v1.25.16-minimal-eksbuild.8 |
v1.24.17-minimal-eksbuild.4 |
v1.23.17-minimal-eksbuild.5 |
importante
El tipo de imagen predeterminado no está disponible para la versión Kubernetes de
1.25
y posteriores. Debe utilizar el tipo de imagen mínimo.Cuando actualiza un tipo de complemento de Amazon EKS, especifica una versión de complemento de Amazon EKS válida, que puede ser una versión que no aparece en esta tabla. Esto se debe a que las versiones del complemento de Amazon EKS no siempre coinciden con las versiones de imágenes del contenedor especificadas al actualizar el tipo autoadministrado de este complemento. Al actualizar el tipo autoadministrado de este complemento, se especifica una versión válida de la imagen del contenedor que aparece en esta tabla.
Requisitos previos
-
Un clúster existente de Amazon EKS. Para implementar uno, consulte Introducción a Amazon EKS.
Consideraciones
-
Kube-proxy
en un clúster de Amazon EKS tiene la misma política de compatibilidad y sesgo que Kubernetes. Aprenda cómo Recuperación de la compatibilidad de las versiones del complemento. -
Kube-proxy
debe ser la misma versión secundaria quekubelet
en los nodos de Amazon EC2. -
El
Kube-proxy
no puede ser posterior a la versión secundaria del plano de control del clúster. -
Si recientemente actualizó el clúster a una nueva versión secundaria de Kubernetes, actualice los nodos de Amazon EC2 a la misma versión secundaria antes de actualizar el
kube-proxy
a la misma versión secundaria que los nodos.
Para actualizar el complemento autoadministrado kube-proxy
-
Confirme que tiene instalado en el clúster el tipo de complemento autoadministrado. Reemplace
my-cluster
por el nombre de su clúster.aws eks describe-addon --cluster-name
my-cluster
--addon-name kube-proxy --query addon.addonVersion --output textSi se devuelve un mensaje de error, tiene el tipo de complemento autoadministrado instalado en el clúster. Los pasos restantes de este tema son para actualizar el tipo de complemento autoadministrado. Si se devuelve el número de versión, tiene el tipo de complemento de Amazon EKS instalado en el clúster. Para actualizarlo, siga el procedimiento que aparece en Actualización de un complemento, en lugar del procedimiento descrito en este tema. Si no está familiarizado con las diferencias entre los tipos de complementos, consulte Complementos de Amazon EKS.
-
Consulte qué versión de la imagen del contenedor está instalada actualmente en el clúster.
kubectl describe daemonset kube-proxy -n kube-system | grep Image
Un ejemplo de salida sería el siguiente.
Image:
602401143452
.dkr.ecr.region-code
.amazonaws.com/eks/kube-proxy:v1.29.1-eksbuild.2
En el ejemplo de resultado,
v1.29.1-eksbuild.2
es la versión instalada en el clúster. -
Actualice el complemento
kube-proxy
reemplazando
y602401143452
por los valores de la salida en el paso anterior. Reemplaceregion-code
por la versión dev1.30.0-eksbuild.3
kube-proxy
que aparece en la última versión autoadministrada disponible de la imagen del contenedor kube-proxy para cada tabla de versiones del clúster de Amazon EKS. Puede especificar el número de versión de tipo de imagen predeterminada o mínima.kubectl set image daemonset.apps/kube-proxy -n kube-system kube-proxy=
602401143452
.dkr.ecr.region-code
.amazonaws.com/eks/kube-proxy:v1.30.0-eksbuild.3
Un ejemplo de salida sería el siguiente.
daemonset.apps/kube-proxy image updated
-
Confirme que la nueva versión ya esté instalada en el clúster.
kubectl describe daemonset kube-proxy -n kube-system | grep Image | cut -d ":" -f 3
Un ejemplo de salida sería el siguiente.
v1.30.0-eksbuild.3
-
Si utiliza nodos
x86
yArm
en el mismo clúster y su clúster se implementó antes del 17 de agosto de 2020. A continuación, edite el manifiesto dekube-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 del complemento. 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: "kubernetes.io/arch" operator: In values: - amd64 - arm64
-
Si su clúster se creó inicialmente con la versión de
1.14
Kubernetes o posterior, puede omitir este paso porquekube-proxy
ya incluye estaAffinity Rule
. Si creó inicialmente un clúster de Amazon EKS con versión1.13
de Kubernetes o anterior y tiene la intención de utilizar nodos de Fargate, edite su manifiesto dekube-proxy
para incluir una reglaNodeAffinity
a fin de evitar que los Podskube-proxy
programen en los nodos de Fargate. Esta es una edición que se realiza una vez. Después de agregar elAffinity Rule
al manifiesto, no es necesario que lo agregue cada vez que realiza una actualización del complemento. Edite sukube-proxy
DaemonSet
.kubectl edit -n kube-system daemonset/kube-proxy
Agregue la siguiente
Affinity Rule
a la secciónDaemonSet
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 CNIen GitHub. - key: eks.amazonaws.com/compute-type operator: NotIn values: - fargate