Saltar al contenido

Preguntas frecuentes: Complementos de Amazon EKS

6 minutos de lectura
0

Tengo algunas preguntas sobre los complementos de Amazon Elastic Kubernetes Service (Amazon EKS).

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.

P: ¿Cómo compruebo el motivo del error de despliegue de un complemento de Amazon EKS en mi clúster de Amazon EKS?

Para comprobar el motivo del error, utiliza la consola de Amazon EKS o AWS CLI.

En la consola de Amazon EKS, sigue estos pasos:

  1. Abre la consola de Amazon EKS.
  2. En el panel de navegación, selecciona Clústeres. A continuación, selecciona el nombre del clúster para el que deseas crear el complemento.
  3. Selecciona la pestaña Complementos.
  4. Selecciona el complemento que esté en estado Degraded, Pending o Inactive. Puedes encontrar el motivo del error en la sección Problemas de estado.

Alternativa:

Ejecuta el comando describe-addon de AWS CLI:

$ aws eks describe-addon --cluster-name example-cluster --addon-name coredns

Puedes encontrar el motivo del error en el objeto Addonissue.

Resultado de ejemplo:

{    "addon": {
        "addonName": "coredns",
        "clusterName": "eksn",
        "status": "DEGRADED",
        "addonVersion": "v1.8.7-eksbuild.4",
        "health": {
            "issues": [
                {
                    "code": "InsufficientNumberOfReplicas",
                    "message": "The add-on is unhealthy because it doesn't have the desired number of replicas."
                }
            ]
        }
        "addonArn": "arn:aws:eks:us-east-2:acc-ID:addon/EKS_CLUSTER/coredns/76c68b04-0804-2419-8da6-90d8318af308",
        "createdAt": "2024-01-17T06:07:23.826000+00:00",
        "modifiedAt": "2024-04-19T04:40:03.537000+00:00",
        "tags": {}
    }
}

**P:**Se muestra el siguiente mensaje de error: "The add-on is unhealthy because it doesn't have the desired number of replicas." ¿Cómo puedo solucionar este error?

Para comprobar el estado del pod correspondiente en el clúster, ejecuta los siguientes comandos:

kubectl get pods -n kube-system
kubectl describe pod pod-name -n kube-system
kubectl logs pod-name -n kube-system

Sustituye pod-name por el nombre del pod.

Para resolver el estado del pod en la salida, consulta ¿Cómo puedo solucionar los problemas relacionados con el estado de los pods en Amazon EKS?

**P:**Se muestra el siguiente mensaje de error: "Conflicts found when trying to apply. Will not continue to due to resolve conflicts mode." ¿Cómo puedo solucionar este error?

Escribe la configuración en un archivo JSON. A continuación, aplica el archivo al complemento. Para obtener más información, consulta ¿Cómo evito los conflictos de configuración al crear o actualizar mis complementos administrados de Amazon EKS?

P: ¿Cómo personalizo la configuración de mi complemento de Amazon EKS?

Para crear una configuración personalizada para tu complemento, usa el parámetro ConfigurationValue de la API CreateAddon.

Para comprobar las opciones de configuración del complemento CoreDNS, ejecuta el comando describe-addon:

aws eks describe-addon-configuration --addon-name coredns --addon-version v1.9.3-eksbuild.2 --query configurationSchema --output text | jq

Resultado de ejemplo:

{
  "$ref": "#/definitions/Coredns",
  "$schema": "http://json-schema.org/draft-06/schema#",
  "definitions": {
    "Coredns": {
      "additionalProperties": false,
      "properties": {
        "computeType": {
          "type": "string"
        },
        "corefile": {
          "description": "Entire corefile contents to use with installation",
          "type": "string"
        },
        "nodeSelector": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "replicaCount": {
          "type": "integer"
        },
        "resources": {
          "$ref": "#/definitions/Resources"
        }
      },
      "title": "Coredns",
      "type": "object"
    },
    "Limits": {
      "additionalProperties": false,
      "properties": {
        "cpu": {
          "type": "string"
        },
        "memory": {
          "type": "string"
        }
      },
      "title": "Limits",
      "type": "object"
    },
    "Resources": {
      "additionalProperties": false,
      "properties": {
        "limits": {
          "$ref": "#/definitions/Limits"
        },
        "requests": {
          "$ref": "#/definitions/Limits"
        }
      },
      "title": "Resources",
      "type": "object"
    }
  }
}

El elemento configurationSchema de la salida proporciona los elementos configurables para la versión seleccionada del complemento CoreDNS.

Para actualizar este complemento, especifica la configuración personalizada de acuerdo con el esquema JSON. Por ejemplo, para ayudar a programar los pods de despliegue de CoreDNS en un conjunto específico de nodos, puedes personalizar selector\_value en el parámetro nodeSelector.

Ejemplo:

{
    "nodeSelector": {
        "selector_key": "selector_value"
    }
}

P: Cuando intento crear o actualizar un complemento con una configuración personalizada, ¿por qué se muestra el siguiente error?: "ConfigurationValue provided in request is not supported: Json schema validation failed with error"?

La siguiente configuración provoca este error:

...
"Limits":
    {
        "cpu":"100m",
        "memory":"500Mi"
    }
...

Confirma que la configuración avanzada sigue el formato de configurationSchema que admite la versión del complemento. Para especificar las cuotas de recursos y las solicitudes para el complemento CoreDNS, ejecuta el siguiente esquema:

...
{
   "resources": {
        "limits": {
            "cpu": "200m",
            "memory": "200Mi",
        },
        "requests": {
            "cpu": "100m",
            "memory": "100Mi"
        }
    }
}
...

P: ¿Por qué Amazon EKS ha revertido el esquema JSON de mi complemento con parámetros personalizados a los parámetros predeterminados después de actualizar el complemento?

Si no incluyes los parámetros personalizados del complemento en el campo configurationValues durante la operación de la API UpdateAddon, el complemento vuelve a los parámetros predeterminados.

Para mantener las modificaciones de la configuración al actualizar el complemento, realiza una de las siguientes acciones:

Incluye los parámetros personalizados en el parámetro configurationValues durante cada operación de la API UpdateAddon.

Alternativa:

Utiliza la opción --resolve-conflicts PRESERVE en la operación UpdateAddon.

P: ¿Cómo compruebo si un complemento está administrado por Amazon EKS o es autoadministrado?

Para comprobar el tipo de complemento que se implementa en el clúster, ejecuta el comando describe-addon de AWS CLI:

aws eks describe-addon --cluster-name example-cluster --addon-name example-addon --query addon.addonVersion --output text

Nota: Sustituye example-cluster por el nombre del clúster y example-addon por el nombre del complemento.

Si el resultado proporciona información sobre el complemento, Amazon EKS lo administra. Si recibes un mensaje de error en la salida, significa que el complemento es autoadministrado.

P: ¿Cómo puedo migrar el complemento autoadministrado de mi clúster a un complemento de Amazon EKS?

Crea el complemento de Amazon EKS con el método de resolución de conflictos adecuado.

Al crear el complemento de Amazon EKS, puedes especificar la configuración personalizada al campo configurationSchema.

Para mantener los cambios en la configuración del clúster, utiliza la opción PRESERVE cuando actualices o elimines un complemento. Para mantener los cambios que la API de Kubernetes ha realizado en los campos que el complemento de Amazon EKS no administra, utiliza la opción PRESERVE. Si el esquema no admite este campo administrado, puedes añadir manualmente la personalización en el despliegue del complemento o en DaemonSet. A continuación, utiliza la opción PRESERVE para la siguiente operación de actualización.

Si eliges OVERWRITE como método de resolución de conflictos, Amazon EKS revierte la configuración personalizada del complemento y sobrescribe tus valores con los valores predeterminados.

P: ¿Cómo puedo migrar un complemento de Amazon EKS a un complemento autoadministrado?

Debes eliminar el complemento de Amazon EKS del clúster de Amazon EKS y, a continuación, ejecutar el comando delete-addon:

aws eks delete-addon --cluster-name example-cluster --addon-name example-addon --preserve

Nota: Sustituye example-cluster por el nombre del clúster y example-addon por el nombre del complemento. Usa la marca --preserve para retener los recursos de Kubernetes subyacentes.

OFICIAL DE AWSActualizada hace 2 años