¿Cómo evito los conflictos de configuración al crear o actualizar mis complementos administrados de Amazon EKS?
Quiero evitar conflictos de configuración al crear o actualizar mis complementos administrados mediante Amazon Elastic Kubernetes Service (Amazon EKS).
Descripción corta
Cuando utilizas la interfaz de la línea de comandos de AWS (AWS CLI) para modificar las configuraciones de los complementos que gestiona Amazon EKS, es posible que se produzcan conflictos de configuración. Si no especificas cómo gestionar estos conflictos, verás el siguiente mensaje de error:
«Conflicts found when trying to apply. Will not continue due to resolve conflicts mode.»
Para solucionar este problema, toma una de estas medidas:
- Utiliza la consola de Amazon EKS que gestiona automáticamente los conflictos de configuración para actualizar la configuración.
- Utiliza la AWS CLI con el parámetro resolve-conflicts OVERWRITE para anular explícitamente la configuración existente.
Resolución
Nota: Si se muestran errores al poner en marcha comandos de AWS CLI, consulta Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Escritura de las configuraciones en un archivo JSON
Escribe tus configuraciones en un archivo JSON según el complemento que utilices. Para obtener información sobre las opciones de configuración de los complementos, consulta amazon-vpc-cni-k8s, aws-ebs-csi-driver y coredns en el sitio web de GitHub.
Complemento de CNI de Amazon Virtual Private Cloud (Amazon VPC):
cat <<EOF > example-json-file { "env": { "MINIMUM_IP_TARGET": "example-minimum-ip-target", "WARM_ENI_TARGET": "example-warm-eni-target", "WARM_IP_TARGET": "example-ip-target" } } EOF
Nota: Sustituye example-minimum-ip-target por la cantidad mínima de direcciones IP que debe mantener cada nodo. Además, sustituye example-warm-eni-target por la cantidad de interfaces de red elásticas que el complemento debe tener disponibles para la asignación de pods. Por último, sustituye example-ip-target por la cantidad de direcciones IP que el complemento debe tener disponibles para la asignación de pods.
Complemento de CSI de Amazon Elastic Block Store (Amazon EBS)
cat <<EOF > example-json-file { "node": { "volumeAttachLimit": example-volume-limit } } EOF
Nota: Sustituye example-volume-limit por el número máximo de volúmenes que el complemento del controlador CSI de Amazon EBS puede adjuntar a un nodo. Este valor debe ser inferior o igual a la cuota de asociación del volumen del tipo de instancia de Amazon Elastic Compute Cloud (Amazon EC2).
CoreDNS:
cat <<EOF > example-json-file { "resources": { "limits": { "cpu": "example-cpu-limit", "memory": "example-memory-limit", }, "requests": { "cpu": "example-cpu-request", "memory": "example-memory-request" } } } EOF
Nota: Sustituye example-cpu-limit por la CPU máxima que puede usar CoreDNS y example-memory-limit por el máximo de recursos de memoria que puede usar CoreDNS. Además, sustituye example-cpu-request por la CPU mínima que CoreDNS necesita para ejecutarse y example-memory-request por los recursos de memoria mínimos que CoreDNS necesita para ejecutarse.
Aplicación del archivo JSON al complemento
Uso de la consola de Amazon EKS
Sigue estos pasos:
- Abre la consola de Amazon EKS.
- Selecciona la pestaña Complementos.
- Selecciona tu complemento y, a continuación, elige Editar.
- Elige los parámetros de configuración opcionales.
- Para los valores de configuración, introduce las configuraciones de tu archivo JSON.
Uso de AWS CLI
Para aplicar el archivo JSON al instalar el complemento por primera vez, ejecuta el siguiente comando create-addon:
aws eks create-addon --addon-name add-on ---cluster-name example-cluster-name --resolve-conflicts OVERWRITE --configuration-values file://example-json-file
Nota: Reemplaza example-cluster-name por el nombre de tu clúster de Amazon EKS. Además, sustituye el complemento por vpc-cni para el complemento de CNI de Amazon VPC, aws-ebs-csi-driver para el complemento del controlador de CSI de Amazon EBS o coredns para el complemento CoreDNS. Por último, reemplaza example-json-file por el nombre de tu archivo de configuración JSON.
Para aplicar el archivo JSON a un complemento existente, ejecuta el siguiente comando update-addon:
aws eks update-addon --addon-name add-on ---cluster-name example-cluster-name --resolve-conflicts OVERWRITE --configuration-values file://example-json-file
Nota: Reemplaza example-cluster-name por el nombre de tu clúster de Amazon EKS. Además, sustituye el complemento por vpc-cni para el complemento de CNI de Amazon VPC, aws-ebs-csi-driver para el complemento del controlador de CSI de Amazon EBS o coredns para el complemento CoreDNS. Por último, reemplaza example-json-file por el nombre de tu archivo de configuración JSON.
Prueba las actualizaciones
Para confirmar que el complemento usa una configuración actualizada, ejecuta el siguiente comando según el complemento que utilices.
CNI y CoreDNS de Amazon VPC:
kubectl get pods -n kube-system example-aws-node-pod-ID -o jsonpath='{.spec.containers[*].env}'
Nota: Sustituya example-aws-node-pod-ID por tu ID de pod de nodo o de CoreDNS.
Controlador CSI de Amazon EBS:
kubectl get ds -n kube-system ebs-csi-node -o jsonpath='{.spec.template.spec.containers[*].args}'
Actualización de tolerancias
Cuando necesites actualizar las tolerancias de nodos de tus complementos, puedes incluirlas en tu archivo de configuración. Igual que sucede con otros cambios de configuración, puedes aplicar estas actualizaciones mediante la consola de Amazon EKS o la AWS CLI con el parámetro resolve-conflicts OVERWRITE.
-
Crea tu configuración de tolerancia en formato YAML:
cat <<EOF > example-yaml-file tolerations: - effect: example-effect key: example-key operator: example-operator value: example-value EOFNota: Sustituye example-yaml-file por el nombre del archivo de configuración de YAML. Además, sustituye example-effect por NoSchedule, PreferNoSchedule o NoExecute y example-operator por Equal o Exists. Por último, sustituye example-key por tu clave de taint de nodo y example-value por tu valor de taint de nodo.
-
Aplica la configuración. Usa una de las siguientes opciones:
- Consola de Amazon EKS: sigue los mismos pasos de la sección «Uso de la consola de Amazon EKS».
O bien: - AWS CLI: Utiliza el comando create-addon o update-addon con el parámetro**--resolve-conflicts OVERWRITE**, tal y como se muestra en la sección «Uso de la AWS CLI».
- Consola de Amazon EKS: sigue los mismos pasos de la sección «Uso de la consola de Amazon EKS».
Información relacionada
Determinación de los campos que se pueden personalizar para los complementos de Amazon EKS
- Temas
- Containers
- Etiquetas
- Amazon Elastic Kubernetes Service
- Idioma
- Español

Contenido relevante
- preguntada hace 6 meses
- preguntada hace un año
- preguntada hace un año
- preguntada hace un año
OFICIAL DE AWSActualizada hace un año
OFICIAL DE AWSActualizada hace 2 años