Ir para o conteúdo

Perguntas frequentes: Complementos do Amazon EKS

6 minuto de leitura
0

Tenho algumas perguntas sobre os complementos do Amazon Elastic Kubernetes Service (Amazon EKS).

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

P: Como faço para verificar o motivo da falha na implantação de um complemento do Amazon EKS no meu cluster do Amazon EKS?

Para verificar o motivo da falha, use o console do Amazon EKS ou a AWS CLI.

No console do Amazon EKS, conclua as seguintes etapas:

  1. Abra o console do Amazon EKS.
  2. No painel de navegação, selecione Clusters. Em seguida, selecione o nome do cluster para o qual você deseja criar o complemento.
  3. Selecione a guia Complementos.
  4. Selecione o complemento que está no estado Degradado, Pendente ou Inativo. Você pode encontrar o motivo da falha na seção Problemas de integridade.

-ou-

Execute o comando describe-addon da AWS CLI:

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

Você pode encontrar o motivo da falha no objeto Addonissue.

Exemplo de saída:

{    "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: Recebi a seguinte mensagem de erro: "The add-on is unhealthy because it doesn't have the desired number of replicas." Como faço para solucionar esse erro?

Para verificar o estado do pod correspondente no cluster, execute os seguintes comandos:

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

Substitua pod-name pelo nome do seu Pod.

Para resolver o status do pod na saída, consulte Como soluciono problemas de status do pod no Amazon EKS?

P: Recebi a seguinte mensagem de erro: “Conflicts found when trying to apply. Will not continue due to resolve conflicts mode.” Como faço para solucionar esse erro?

Grave a configuração em um arquivo JSON. Em seguida, aplique o arquivo ao complemento. Para obter mais informações, consulte Como evito conflitos de configuração ao criar ou atualizar meus complementos gerenciados pelo Amazon EKS?

P: Como personalizo a configuração do meu complemento do Amazon EKS?

Para criar uma configuração personalizada para seu complemento, use o parâmetro ConfigurationValue na API CreateAddon.

Para verificar as opções de configuração do complemento CoreDNS, execute o comando describe-addon:

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

Exemplo de saída:

{
  "$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"
    }
  }
}

O elemento configurationSchema na saída fornece os elementos configuráveis para a versão selecionada do complemento CoreDNS.

Para atualizar esse complemento, especifique a configuração personalizada de acordo com o esquema JSON. Por exemplo, para ajudar a programar os pods de implantação do CoreDNS em um conjunto específico de nós, é possível personalizar selector_value no parâmetro nodeSelector.

Exemplo:

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

P: Quando tento criar ou atualizar um complemento com uma configuração personalizada, por que recebo o seguinte erro: "ConfigurationValue provided in request is not supported: Json schema validation failed with error"?

A configuração a seguir causa esse erro:

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

Confirme se sua configuração avançada segue o formato de configurationSchema compatível com a versão do complemento. Para especificar as cotas e solicitações de recursos para o complemento CoreDNS, execute o seguinte esquema:

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

P: Por que o Amazon EKS reverteu meu esquema JSON do complemento com parâmetros personalizados para os parâmetros padrão depois que eu atualizei o complemento?

Quando você não inclui os parâmetros personalizados do complemento no campo configurationValues durante a operação da API UpdateAddon, o complemento é revertido para os parâmetros padrão.

Para manter suas edições na configuração ao atualizar o complemento, execute uma das seguintes ações:

Inclua os parâmetros personalizados no parâmetro configurationValues durante cada operação da API UpdateAddon.

-ou-

Use a opção --resolve-conflicts PRESERVE em sua operação UpdateAddon.

P: Como faço para verificar se um complemento é gerenciado pelo Amazon EKS ou é autogerenciado?

Para verificar o tipo de complemento implantado em seu cluster, execute o comando describe-addon da AWS CLI:

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

Observação: substitua example-cluster pelo nome do seu cluster e example-addon pelo nome do seu complemento.

Se a saída fornecer informações sobre seu complemento, o Amazon EKS gerencia o complemento. Se você receber uma mensagem de erro na saída, o complemento é autogerenciado.

P: Como faço para migrar o complemento autogerenciado do meu cluster para um complemento do Amazon EKS?

Crie o complemento do Amazon EKS com o método apropriado de resolução de conflitos.

Ao criar o complemento do Amazon EKS, você pode passar sua configuração personalizada no campo configurationSchema.

Para manter as alterações na configuração do cluster, use a opção PRESERVE ao atualizar ou excluir um complemento. Para manter as alterações que a API Kubernetes fez nos campos que o complemento do Amazon EKS não gerencia, use a opção PRESERVE. Se o esquema não oferecer suporte a esse campo gerenciado, você poderá adicionar manualmente a personalização na implantação do complemento ou no DaemonSet. Em seguida, use a opção PRESERVE para a próxima operação de atualização.

Quando você escolhe OVERWRITE para o método de resolução de conflitos, o Amazon EKS reverte as configurações personalizadas no complemento e substitui seus valores pelos valores padrão.

P: Como faço para migrar um complemento do Amazon EKS para um complemento autogerenciado?

Você deve remover o complemento do Amazon EKS do seu cluster do Amazon EKS e, em seguida, executar o comando delete-addon:

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

Observação: substitua example-cluster pelo nome do seu cluster e example-addon pelo nome do seu complemento. Use o sinalizador --preserve para reter os recursos subjacentes do Kubernetes.

AWS OFICIALAtualizada há 2 anos