내용으로 건너뛰기

FAQ: Amazon EKS 추가 기능

5분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS) 추가 기능에 대한 몇 가지 질문이 있습니다.

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우 AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

Q: Amazon EKS 클러스터에서 Amazon EKS 추가 기능을 배포하지 못한 이유를 어떻게 확인합니까?

실패 원인을 확인하려면 Amazon EKS 콘솔 또는 AWS CLI를 사용하십시오.

Amazon EKS 콘솔에서 다음 단계를 완료하십시오.

  1. Amazon EKS 콘솔을 엽니다.
  2. 탐색 창에서 클러스터를 선택합니다. 그런 다음 추가 기능을 만들려는 클러스터의 이름을 선택합니다.
  3. 추가 기능 탭을 선택합니다.
  4. 성능 저하됨, 대기 중 또는 비활성 상태인 추가 기능을 선택합니다. 상태 문제 섹션에서 실패 원인을 확인할 수 있습니다.

-또는-

AWS CLI describe-addon 명령을 실행합니다.

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

Addonissue 객체에서 실패 원인을 확인할 수 있습니다.

출력 예시:

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

Q: 다음과 같은 오류 메시지가 표시되었습니다. ‘The add-on is unhealthy because it doesn't have the desired number of replicas.’ 이 오류를 어떻게 해결합니까?

클러스터에서 해당 포드의 상태를 확인하려면 다음 명령을 실행합니다.

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

pod-name을 해당 포드 이름으로 바꾸십시오.

출력의 포드 상태를 해결하려면 Amazon EKS에서 포드 상태 문제를 어떻게 해결합니까?를 참조하십시오.

Q: 다음과 같은 오류 메시지가 표시되었습니다. ‘Conflicts found when trying to apply. Will not continue to due to resolve conflicts mode.’ 이 오류를 어떻게 해결합니까?

JSON 파일에 구성을 기록합니다. 그런 다음 파일을 추가 기능에 적용합니다. 자세한 내용은 Amazon EKS 관리형 추가 기능을 만들거나 업데이트할 때 구성 충돌을 어떻게 방지합니까?를 참조하십시오.

Q: Amazon EKS 추가 기능의 구성을 어떻게 사용자 지정합니까?

추가 기능의 사용자 지정 구성을 만들려면 CreateAddon API의 ConfigurationValue 파라미터를 사용하십시오.

CoreDNS 추가 기능의 구성 옵션을 확인하려면 describe-addon 명령을 실행합니다.

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

출력 예시:

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

출력의 configurationSchema 요소는 선택된 버전의 CoreDNS 추가 기능에 대해 구성 가능한 요소를 제공합니다.

이 추가 기능을 업데이트하려면 JSON 스키마에 따라 사용자 지정 구성을 지정합니다. 예를 들어 특정 노드 세트에서 CoreDNS 배포 포드를 예약하는 데 도움이 되도록 nodeSelector 파라미터의 selector_value를 사용자 지정할 수 있습니다.

예:

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

Q: 사용자 지정 구성으로 추가 기능을 만들거나 업데이트하려고 하면 다음 오류가 표시되는 이유는 무엇입니까? ‘ConfigurationValue provided in request is not supported: Json schema validation failed with error’

이 오류는 다음과 같은 구성으로 인해 발생합니다.

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

고급 구성이 추가 기능 버전에서 지원하는 configurationSchema의 형식을 따르는지 확인하십시오. CoreDNS 추가 기능의 리소스 할당량 및 요청을 지정하려면 다음 스키마를 실행합니다.

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

Q: 추가 기능을 업데이트한 후 Amazon EKS에서 사용자 지정 파라미터가 포함된 추가 기능 JSON 스키마를 기본 파라미터로 되돌린 이유는 무엇입니까?

UpdateAddon API 작업 중에 configurationValues 필드에 추가 기능의 사용자 지정 파라미터를 포함하지 않으면 추가 기능이 기본 파라미터로 되돌아갑니다.

추가 기능을 업데이트할 때 구성에 대한 편집 내용을 유지하려면 다음 작업 중 하나를 수행하십시오.

모든 UpdateAddon API 작업 중에 configurationValues 파라미터에 사용자 지정 파라미터를 포함합니다.

-또는-

UpdateAddon 작업에 --resolve-conflicts PRESERVE 옵션을 사용합니다.

Q: 추가 기능이 Amazon EKS 관리형인지 자체 관리형인지 어떻게 확인합니까?

클러스터에 배포된 추가 기능의 유형을 확인하려면 AWS CLI describe-addon 명령을 실행합니다.

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

참고: example-cluster를 클러스터 이름으로 바꾸고 example-region을 추가 기능의 이름으로 바꾸십시오.

출력에 추가 기능에 대한 정보가 제공되는 경우 Amazon EKS에서 추가 기능을 관리하는 것입니다. 출력에 오류 메시지가 표시된다면 추가 기능이 자체적으로 관리되는 것입니다.

Q: 클러스터의 자체 관리형 추가 기능을 Amazon EKS 추가 기능으로 어떻게 마이그레이션합니까?

적절한 충돌 해결 방법을 사용하여 Amazon EKS 추가 기능을 만드십시오.

Amazon EKS 추가 기능을 만들 때 configurationSchema 필드에 사용자 지정 구성을 전달할 수 있습니다.

클러스터 내 구성 변경 사항을 유지하려면 추가 기능을 업데이트하거나 삭제할 때 PRESERVE 옵션을 사용하십시오. Amazon EKS 추가 기능이 관리하지 않는 필드에 대한 Kubernetes API의 변경 사항을 유지하려면 PRESERVE 옵션을 사용하십시오. 스키마가 이 관리형 필드를 지원하지 않는 경우 추가 기능 배포 또는 DaemonSet에 사용자 지정을 수동으로 추가할 수 있습니다. 그리고 다음 업데이트 작업에 PRESERVE 옵션을 사용합니다.

충돌 해결 방법으로 OVERWRITE를 선택하면 Amazon EKS가 추가 기능의 사용자 지정 설정을 되돌리고 기본값으로 값을 덮어씁니다.

Q: Amazon EKS 추가 기능을 자체 관리형 추가 기능으로 어떻게 마이그레이션합니까?

Amazon EKS 클러스터에서 Amazon EKS 추가 기능을 제거한 다음 delete-addon 명령을 실행해야 합니다.

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

참고: example-cluster를 클러스터 이름으로 바꾸고 example-region을 추가 기능의 이름으로 바꾸십시오. 기본 Kubernetes 리소스를 유지하려면 --preserve 플래그를 사용하십시오.

AWS 공식업데이트됨 2년 전