추가 기능 - Eksctl 사용 설명서

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

추가 기능

이 주제에서는 eksctl을 사용하여 Amazon EKS 클러스터의 Amazon EKS 추가 기능을 관리하는 방법을 설명합니다. EKS 추가 기능은 EKS API를 통해 Kubernetes 운영 소프트웨어를 활성화하고 관리할 수 있는 기능으로, 클러스터 추가 기능의 설치, 구성 및 업데이트 프로세스를 간소화합니다.

주의

이제 eksctl은 자체 관리형 추가 기능 대신 기본 추가 기능(vpc-cni, coredns, kube-proxy)을 EKS 추가 기능으로 설치합니다. 즉, eksctl v0.184.0 이상으로 생성된 클러스터에는 eksctl utils update-* 명령 eksctl update addon 대신를 사용해야 합니다.

Cilium 및 Calico와 같은 대체 CNI 플러그인을 사용하려는 경우 기본 네트워킹 추가 기능 없이 클러스터를 생성할 수 있습니다.

이제 EKS 추가 기능은 EKS Pod Identity Associations를 통한 IAM 권한 수신을 지원하여 클러스터 외부의 AWS 서비스와 연결할 수 있습니다.

추가 기능 생성

Eksctl은 클러스터 추가 기능을 보다 유연하게 관리할 수 있습니다.

구성 파일에서 원하는 추가 기능과 (필요한 경우) 연결할 역할 또는 정책을 지정할 수 있습니다.

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: example-cluster region: us-west-2 iam: withOIDC: true addons: - name: vpc-cni # all below properties are optional version: 1.7.5 tags: team: eks # you can specify at most one of: attachPolicyARNs: - arn:aws:iam::account:policy/AmazonEKS_CNI_Policy # or serviceAccountRoleARN: arn:aws:iam::account:role/AmazonEKSCNIAccess # or attachPolicy: Statement: - Effect: Allow Action: - ec2:AssignPrivateIpAddresses - ec2:AttachNetworkInterface - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:DescribeInstances - ec2:DescribeTags - ec2:DescribeNetworkInterfaces - ec2:DescribeInstanceTypes - ec2:DetachNetworkInterface - ec2:ModifyNetworkInterfaceAttribute - ec2:UnassignPrivateIpAddresses Resource: '*'

attachPolicy, attachPolicyARNs 및 중 최대 하나를 지정할 수 있습니다serviceAccountRoleARN.

이 중 아무 것도 지정하지 않으면 모든 권장 정책이 연결된 역할로 추가 기능이 생성됩니다.

참고

정책을 추가 기능에 연결하려면 클러스터가 OIDC 활성화되어 있어야 합니다. 활성화되지 않은 경우 연결된 정책은 무시됩니다.

그런 다음 클러스터 생성 프로세스 중에 이러한 추가 기능을 생성할 수 있습니다.

eksctl create cluster -f config.yaml

또는 구성 파일 또는 CLI 플래그를 사용하여 클러스터 생성 후 명시적으로 추가 기능을 생성합니다.

eksctl create addon -f config.yaml
eksctl create addon --name vpc-cni --version 1.7.5 --service-account-role-arn <role-arn>

추가 기능을 생성하는 동안 클러스터에 자체 관리형 버전의 추가 기능이 이미 있는 경우 구성 파일을 통해 resolveConflicts 옵션을 설정하여 잠재적 configMap 충돌을 해결하는 방법을 선택할 수 있습니다. 예:

addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: overwrite

추가 기능 생성의 경우 resolveConflicts 필드는 세 가지 개별 값을 지원합니다.

  • none - EKS는 값을 변경하지 않습니다. 생성이 실패할 수 있습니다.

  • overwrite - EKS는 구성 변경 사항을 EKS 기본값으로 다시 덮어씁니다.

  • preserve - EKS는 값을 변경하지 않습니다. 생성이 실패할 수 있습니다. (과 비슷none하지만 preserve 추가 기능 업데이트 시와 다름).

활성화된 추가 기능 나열

다음을 실행하여 클러스터에서 활성화된 추가 기능을 확인할 수 있습니다.

eksctl get addons --cluster <cluster-name>

or

eksctl get addons -f config.yaml

추가 기능의 버전 설정

추가 기능의 버전 설정은 선택 사항입니다. version 필드를 비워 두면 추가 기능의 기본 버전이 확인eksctl됩니다. 특정 추가 기능의 기본 버전에 대한 자세한 내용은 EKS에 대한 AWS 설명서에서 확인할 수 있습니다. 기본 버전이 반드시 사용 가능한 최신 버전이 아닐 수도 있습니다.

추가 기능 버전은 로 설정할 수 있습니다latest. 또는 v1.7.5-eksbuild.1 또는와 같이 지정된 EKS 빌드 태그로 버전을 설정할 수 있습니다v1.7.5-eksbuild.2. 또는 v1.7.5와 같은 추가 기능의 릴리스 버전으로 설정할 수도 있으며 1.7.5eksbuild미사 태그가 검색되고 자동으로 설정됩니다.

사용 가능한 추가 기능과 해당 버전을 검색하는 방법은 아래 섹션을 참조하세요.

추가 기능 검색

다음을 실행하여 클러스터에 설치할 수 있는 추가 기능을 확인할 수 있습니다.

eksctl utils describe-addon-versions --cluster <cluster-name>

그러면 클러스터의 kubernetes 버전이 검색되고 해당 버전을 기준으로 필터링됩니다. 또는 특정 kubernetes 버전에 사용할 수 있는 추가 기능을 확인하려면 다음을 실행할 수 있습니다.

eksctl utils describe-addon-versions --kubernetes-version <version>

type, owner 및/또는를 필터링하여 추가 기능을 검색할 수도 있습니다publisher. 예를 들어 특정 소유자 및 유형에 대한 추가 기능을 보려면 다음을 실행할 수 있습니다.

eksctl utils describe-addon-versions --kubernetes-version 1.22 --types "infra-management, policy-management" --owners "aws-marketplace"

types, ownerspublishers 플래그는 선택 사항이며 결과를 필터링하기 위해 함께 또는 개별적으로 지정할 수 있습니다.

추가 기능에 대한 구성 스키마 검색

추가 기능 및 버전을 검색한 후 JSON 구성 스키마를 가져와 사용자 지정 옵션을 볼 수 있습니다.

eksctl utils describe-addon-configuration --name vpc-cni --version v1.12.0-eksbuild.1

그러면이 추가 기능에 사용할 수 있는 다양한 옵션의 JSON 스키마가 반환됩니다.

구성 값 작업

ConfigurationValues는 추가 기능을 생성하거나 업데이트하는 동안 구성 파일에 제공될 수 있습니다. JSON 및 YAML 형식만 지원됩니다.

예:

addons: - name: coredns configurationValues: |- replicaCount: 2
addons: - name: coredns version: latest configurationValues: "{\"replicaCount\":3}" resolveConflicts: overwrite
참고

추가 기능 구성 값을 수정하면 구성 충돌이 발생합니다.

Thus, we need to specify how to deal with those by setting the `resolveConflicts` field accordingly. As in this scenario we want to modify these values, we'd set `resolveConflicts: overwrite`.

또한 get 명령은 이제 추가 기능에 ConfigurationValues 대한 도 검색합니다. 예:

eksctl get addon --cluster my-cluster --output yaml
- ConfigurationValues: '{"replicaCount":3}' IAMRole: "" Issues: null Name: coredns NewerVersion: "" Status: ACTIVE Version: v1.8.7-eksbuild.3

추가 기능 업데이트

다음을 실행하여 추가 기능을 최신 버전으로 업데이트하고 연결된 정책을 변경할 수 있습니다.

eksctl update addon -f config.yaml
eksctl update addon --name vpc-cni --version 1.8.0 --service-account-role-arn <new-role>

추가 기능 생성과 마찬가지로 추가 기능을 업데이트할 때 해당 추가 기능의에 이전에 적용했을 수 있는 구성 변경 사항을 완전히 제어할 수 있습니다configMap. 특히 보존하거나 덮어쓸 수 있습니다. 이 선택적 기능은 동일한 구성 파일 필드를 통해 사용할 수 있습니다resolveConflicts. 예:

addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: preserve

추가 기능 업데이트의 경우 resolveConflicts 필드는 세 가지 고유한 값을 허용합니다.

  • none - EKS는 값을 변경하지 않습니다. 업데이트가 실패할 수 있습니다.

  • overwrite - EKS는 구성 변경 사항을 EKS 기본값으로 다시 덮어씁니다.

  • preserve - EKS는 값을 보존합니다. 이 옵션을 선택하는 경우 프로덕션 클러스터의 추가 기능을 업데이트하기 전에 비프로덕션 클러스터의 필드 및 값 변경 사항을 테스트하는 것이 좋습니다.

추가 기능 삭제

다음을 실행하여 추가 기능을 삭제할 수 있습니다.

eksctl delete addon --cluster <cluster-name> --name <addon-name>

그러면 추가 기능과 연결된 모든 IAM 역할이 삭제됩니다.

클러스터를 삭제하면 추가 기능과 연결된 모든 IAM 역할도 삭제됩니다.

기본 네트워킹 추가 기능을 위한 클러스터 생성 유연성

클러스터가 생성되면 EKS는 VPC CNI, CoreDNS 및 kube-proxy를 자체 관리형 추가 기능으로 자동으로 설치합니다. Cilium 및 Calico와 같은 다른 CNI 플러그인을 사용하기 위해이 동작을 비활성화하기 위해 eksctl은 이제 기본 네트워킹 추가 기능 없이 클러스터 생성을 지원합니다. 이러한 클러스터를 생성하려면 다음과 addonsConfig.disableDefaultAddons같이를 설정합니다.

addonsConfig: disableDefaultAddons: true
eksctl create cluster -f cluster.yaml

VPC CNI가 아닌 CoreDNS 및 kube-proxy만 사용하여 클러스터를 생성하려면에서 추가 기능을 명시적으로 지정addons하고 다음과 addonsConfig.disableDefaultAddons같이를 설정합니다.

addonsConfig: disableDefaultAddons: true addons: - name: kube-proxy - name: coredns
eksctl create cluster -f cluster.yaml

이 변경의 일환으로 eksctl은 이제 addonsConfig.disableDefaultAddons가 명시적으로 true로 설정되지 않은 경우 클러스터 생성 중에 자체 관리형 추가 기능 대신 기본 추가 기능을 EKS 추가 기능으로 설치합니다. 따라서 eksctl v0.184.0 이상으로 생성된 클러스터의 추가 기능을 업데이트하는 데 명령을 더 이상 사용할 수 eksctl utils update-* 없습니다.

  • eksctl utils update-aws-node

  • eksctl utils update-coredns

  • eksctl utils update-kube-proxy

대신를 지금 사용해야 eksctl update addon 합니다.

자세한 내용은 Amazon EKS에서 네트워킹 추가 기능을 위한 클러스터 생성 유연성 도입을 참조하세요.