Amazon Elastic Kubernetes Service(Amazon EKS) 관리형 추가 기능을 생성하거나 업데이트할 때 구성 충돌을 방지하고 싶습니다.
간단한 설명
Amazon EKS 관리형 추가 기능을 생성하거나 업데이트할 때 다음 오류가 발생할 수 있습니다.
{
"code": "ConfigurationCon conflict",
"message": "적용을 시도하는 동안 충돌이 발견되었습니다. 충돌 해결 모드로 인해 계속되지 않습니다. 충돌: <충돌 필드> "
}
관리형 추가 기능에 대한 Amazon EKS 고급 구성을 사용하면 기존 추가 기능 구성을 재정의할 수 있습니다.
사용자 정의 구성을 재정의하려면 매개변수 해결-충돌 OVERWRITE 를 사용하십시오.
Amazon EKS 서비스 엔드포인트를 통해 구성을 관리하려면 Amazon EKS CreateAddon 또는 UpdateAddon API를 사용하십시오. 그런 다음 ConfigurationValues 매개변수를 전달하여 추가 기능 사용자 정의 구성을 적용하고 관리합니다. 이 방법은 구성 충돌을 방지합니다.
다음 추가 기능 및 옵션은 일반적으로 Amazon EKS 고급 구성에 사용됩니다.
- Amazon Virtual Private Cloud(Amazon VPC) CNI
- Amazon Elastic Block Store(Amazon EBS) CSI 드라이버
- 코어DNS
- 공차
해결
참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI 오류 문제 해결을 참조하십시오 . 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오 .
아마존 VPC CNI
관리형 Amazon VPC CNI 추가 기능을 사용하면 WARM_PREFIX_TARGET , WARM_IP_TARGET 및 MINIMUM_IP_TARGET 매개변수에 대한 값을 설정할 수 있습니다. 이러한 매개변수는 각 작업자 노드별로 프로비저닝된 워밍업 IP 주소의 양을 제어합니다. 개인 IP 주소 고갈을 방지하려면 이러한 매개변수를 설정해야 합니다.
추가 기능 설치 또는 업데이트 중에 관리형 Amazon VPC CNI 추가 기능 매개변수 값을 업데이트하려면 다음 단계를 완료하십시오.
참고: 다음 명령에서 모든 예제 값을 사용자의 값으로 바꿉니다.
1. JSON 파일에 구성을 작성합니다.
$ cat <<EOF > example-json-file
{
"env": {
"MINIMUM_IP_TARGET": "example-value",
"WARM_ENI_TARGET": "example-value",
"WARM_IP_TARGET": "example-value"
}
}
EOF
2. 다음 방법 중 하나를 사용하여 파일을 적용합니다.
- Amazon EKS 콘솔을 엽니다 . 클러스터 콘솔 대시보드에서 추가 기능 탭을 선택하고, VPC CNI 추가 기능을 선택하고, 편집을 선택한 후 선택적 구성 설정을 선택합니다. 구성 값 필드 에 JSON 파일의 내용을 붙여넣습니다 .
- 애드온을 처음 설치하는 경우 create-addon 명령을 실행하세요.
$ aws eks create-addon --addon-name vpc-cni ---cluster-name <example-cluster-name> --resolve-conflicts OVERWRITE --configuration-values file:///example-json-file
- 기존 추가 기능을 업데이트하는 경우 update-addon 명령을 실행하십시오.
$ aws eks update-addon --addon-name vpc-cni ---cluster-name <example-cluster-name> --resolve-conflicts OVERWRITE --configuration-values file:///example-json-file
3. 구성이 업데이트되었는지 확인합니다.
$ kubectl get pods -n kube-system <example-aws-node-pod-ID> -o jsonpath='{.spec.containers[*].env}'
Amazon EBS CSI 드라이버
Amazon EBS CSI 드라이버 추가 기능은 포드에 대한 Amazon EBS 볼륨 연결을 관리합니다. 이 추가 기능을 사용하면 작업자 노드에 연결된 볼륨의 제한을 제어할 수 있습니다. 볼륨 제한을 업데이트하려면 ebs-plugin 컨테이너에 전달되는 인수와 볼륨 연결 제한 매개변수를 해당 값으로 업데이트해야 합니다.
Amazon EBS CSI 드라이버 추가 기능을 사용하여 볼륨 연결 제한 파라미터를 업데이트하려면 다음 단계를 완료하십시오.
1. JSON 파일에 구성을 작성합니다.
$ cat <<EOF > example-json-file
{
"node": {
"volumeAttachLimit": example-value
}
}
EOF
2. 다음 방법 중 하나를 사용하여 파일을 적용합니다.
- Amazon EKS 콘솔을 엽니다 . 클러스터 콘솔 대시보드에서 추가 기능 탭을 선택하고 Amazon EBS CSI 드라이버 추가 기능을 선택한 다음 편집을 선택 하고 선택적 구성 설정을 선택합니다. 구성 값 필드 에 JSON 파일의 내용을 붙여넣습니다 .
- 애드온을 처음 설치하는 경우 create-addon 명령을 실행하세요.
$ aws eks create-addon --addon-name aws-ebs-csi-driver ---cluster-name <example-cluster-name> --resolve-conflicts OVERWRITE --configuration-values file:///example-json-file
- 기존 추가 기능을 업데이트하는 경우 update-addon 명령을 실행하십시오.
$ aws eks update-addon --addon-name aws-ebs-csi-driver --cluster-name <example-cluster-name --resolve-conflicts OVERWRITE --configuration-values file:///example-json-file
3. 구성이 업데이트되었는지 확인합니다.
$ kubectl get ds -n kube-system ebs-csi-node -o jsonpath='{.spec.template.spec.containers[*].args}'
코어DNS
CoreDNS 추가 기능을 사용하면 CoreDNS 포드가 대규모 클러스터 요청을 충족할 수 있도록 리소스 요청 및 제한 값을 늘릴 수 있습니다.
CoreDNS 추가 기능을 사용하여 리소스 요청 및 제한 값을 업데이트하려면 다음 단계를 완료하세요.
1. JSON 파일에 구성을 작성합니다.
$ cat <<EOF > example-json-file
{
"resources": {
"limits": {
"cpu": "example-value",
"memory": "example-value",
},
"requests": {
"cpu": "example-value",
"memory": "example-value"
}
}
}
EOF
2. 다음 방법 중 하나를 사용하여 파일을 적용합니다.
- Amazon EKS 콘솔을 엽니다 . 클러스터 콘솔 대시보드에서 추가 기능 탭을 선택하고 CoreDNS 추가 기능을 선택하고 편집을 선택한 후 선택적 구성 설정을 선택합니다. 구성 값 필드 에 JSON 파일의 내용을 붙여넣습니다 .
- 애드온을 처음 설치하는 경우 create-addon 명령을 실행하세요.
$ aws eks create-addon --addon-name coredns ---cluster-name <example-cluster-name> --resolve-conflicts OVERWRITE --configuration-values file:///example-json-file
- 기존 추가 기능을 업데이트하는 경우 update-addon 명령을 실행하십시오.
$ aws eks update-addon --addon-name coredns --cluster-name <example-cluster-name> --resolve-conflicts OVERWRITE --configuration-values file:///example-json-file
3. 구성이 업데이트되었는지 확인합니다.
$ kubectl get pods -n kube-system <example-coredns-pod-ID> -o jsonpath='{.spec.containers[*].resources}'
공차
추가 기능 이미지의 최신 버전에 톨러레이션을 적용하고 필요에 따라 톨러레이션 키와 값을 업데이트할 수 있습니다.
YAML 형식의 예:
$ cat <<EOF > example-yaml-file
tolerations:
- effect: example-value
key: example-value
operator: example-value
value: example-value
EOF
관련 정보
출처 : https://repost.aws/knowledge-center/eks-prevent-conflicts-managed-addons
'[AWS-RDP] > EKS' 카테고리의 다른 글
[중요2][EKS] Amazon EKS 버전 업그레이드, #3 kubectl 설치 또는 업데이트 (69) | 2023.12.13 |
---|---|
[중요2][EKS] Amazon EKS 버전 업그레이드, #2 WorkNode (71) | 2023.12.13 |
[중요2][EKS] Amazon EKS 버전 업그레이드, #1 EKS 클러스터 (66) | 2023.12.13 |
[참고] Amazon VPC CNI plugin for Kubernetes Amazon EKS 추가 기능을 사용한 작업!! (56) | 2023.12.12 |
[참고] Provisioning AWS EKS with Terraform !! (38) | 2023.12.11 |
[EKS] kubernetes pods 에서 curl 테스트 해보기!! (0) | 2023.09.07 |
댓글