Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
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 Cómo crear un complemento de Amazon EKS. Si no puede utilizar 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
Antes de comenzar, revise las consideraciones para la actualización. Para obtener más información, consulte Consideraciones importantes sobre la actualización de CoreDNS.
-
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 coredns --query addon.addonVersion --output text
Si se devuelve un mensaje de error, tiene el tipo de complemento autoadministrado instalado en el clúster. Complete los pasos restantes de este procedimiento. Si se devuelve el número de versión, tiene el tipo de complemento de Amazon EKS instalado en el clúster. Para actualizar el tipo de Amazon EKS del complemento, siga el procedimiento que aparece en Actualizar el complemento CoreDNS de Amazon EKS, en lugar de realizar este procedimiento. 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 deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
Un ejemplo de salida sería el siguiente.
v1.8.7-eksbuild.2
-
Si la versión actual de CoreDNS es
v1.5.0
o una posterior, pero anterior a la versión que aparece en la tabla de versiones de CoreDNS, omita este paso. Si su versión actual es anterior a1.5.0
, debe modificarConfigMap
para que CoreDNS utilice el complemento de reenvío, en lugar del complemento proxy.-
Abra el
ConfigMap
con el siguiente comando.kubectl edit configmap coredns -n kube-system
-
Sustituya el
proxy
en la línea siguiente porforward
. Guarde el archivo y salga del editor.proxy . /etc/resolv.conf
-
-
Si implementó su clúster en Kubernetes
1.17
o una versión anterior inicialmente, es posible que deba eliminar una línea interrumpida de su manifiesto de CoreDNS.importante
Debe completar este paso antes de actualizar a la versión
1.7.0
de CoreDNS, pero se recomienda que complete este paso incluso si está actualizando a una versión anterior.-
Verifique si su manifiesto CoreDNS cuenta con la línea.
kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream
Si no se devuelve un resultado, el manifiesto no cuenta con la línea y puede pasar al siguiente paso para actualizar CoreDNS. Si se devuelve el resultado, debe eliminar la línea.
-
Edite el
ConfigMap
con el siguiente comando, al eliminar la línea en el archivo que tiene la palabraupstream
en ella. No realice más cambios en el archivo. Una vez que elimine la línea, guarde los cambios.kubectl edit configmap coredns -n kube-system -o yaml
-
-
Recupere su versión de la imagen de CoreDNS actual:
kubectl describe deployment coredns -n kube-system | grep Image
Un ejemplo de salida sería el siguiente.
602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.8.7-eksbuild.2
-
Si está actualizando a CoreDNS
1.8.3
o una versión posterior, debe agregar el permisoendpointslices
alclusterrole
de Kubernetessystem:coredns
.kubectl edit clusterrole system:coredns -n kube-system
Agregue las siguientes líneas en las líneas de permisos existentes en la sección
rules
del archivo.[...] - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch [...]
-
Para actualizar el complemento CoreDNS, reemplace
602401143452
yregion-code
por los valores de la salida devuelta en un paso anterior. Reemplacev1.11.3-eksbuild.1
por la versión de CoreDNS que aparece en la tabla de versiones más recientes correspondiente a la versión de Kubernetes.kubectl set image deployment.apps/coredns -n kube-system coredns=602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.11.3-eksbuild.1
Un ejemplo de salida sería el siguiente.
deployment.apps/coredns image updated
-
Vuelva a comprobar la versión de la imagen del contenedor para confirmar que se actualizó a la versión que especificó en el paso anterior.
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
Un ejemplo de salida sería el siguiente.
v1.11.3-eksbuild.1