Amazon EKS 추가 기능으로 Amazon EBS CSI 드라이버 관리 - Amazon EKS

Amazon EKS 추가 기능으로 Amazon EBS CSI 드라이버 관리

보안을 강화하고 작업량을 줄이려면 Amazon EKS CSI 드라이버를 Amazon EKS 추가 기능으로 관리할 수 있습니다. Amazon EKS 추가 기능에 대한 자세한 내용은 Amazon EKS 추가 기능 섹션을 참조하세요. Amazon EBS CSI 드라이버 추가 기능 추가의 단계에 따라 Amazon EBS CSI 추가 기능을 추가할 수 있습니다.

Amazon EBS CSI 추가 기능을 추가한 경우 Amazon EKS 추가 기능으로 Amazon EBS CSI 드라이버 업데이트Amazon EBS CSI 추가 기능 제거 섹션의 단계에 따라 관리할 수 있습니다.

사전 조건
  • 기존 클러스터가 있어야 합니다. 필요한 플랫폼 버전을 확인하려면 다음 명령을 실행합니다.

    aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
  • 클러스터에 대한 기존 AWS Identity and Access Management(IAM) OpenID Connect(OIDC) 제공업체입니다. 이미 있는지 아니면 생성해야 하는지 확인하려면 클러스터의 IAM OIDC 제공업체 생성 부분을 참조하세요.

  • Amazon EBS CSI 드라이버 IAM 역할입니다. 이 사전 조건을 충족하지 않는 경우 추가 기능 설치를 시도하고 kubectl describe pvc를 실행하면 could not create volume in EC2: UnauthorizedOperation 오류와 함께 failed to provision volume with StorageClass가 표시됩니다. 자세한 내용은 Amazon EBS CSI 드라이버 IAM 역할 생성 섹션을 참조하세요.

  • 클러스터 전체에서 제한된 PodSecurityPolicy를 사용하는 경우 배포할 수 있는 충분한 권한이 추가 기능에 부여되었는지 확인합니다. 각 추가 기능 Pod에 필요한 권한을 알아보려면 GitHub의 관련 추가 기능 매니페스트 정의를 참조하세요.

중요

Amazon EBS CSI 드라이버의 스냅샷 기능을 사용하려면 추가 기능을 설치하기 전에 외부 스냅샷을 설치해야 합니다. 외부 스냅샷 구성 요소는 다음 순서로 설치해야 합니다.

자세한 내용은 GitHub의 CSI Snapshotter를 참조하세요.

Amazon EBS CSI 드라이버 추가 기능 추가

중요

Amazon EBS 드라이버를 Amazon EKS 추가 기능으로 추가하기 전에 클러스터에 자체 관리형 버전의 드라이버가 설치되어 있지 않은지 확인하세요. 설치되어 있다면 GitHub의 자체 관리형 Amazon EBS CSI 제거를 참조하세요.

eksctl, AWS Management Console 또는 AWS CLI를 사용하여 Amazon EBS CSI 추가 기능을 클러스터에 추가할 수 있습니다.

eksctl
eksctl을 사용하여 Amazon EBS CSI 추가 기능을 추가하려면

다음 명령을 실행합니다. my-cluster를 클러스터 이름으로, 111122223333을 계정 ID로, AmazonEKS_EBS_CSI_DriverRole이전에 생성한 IAM 역할의 이름으로 바꿉니다. 클러스터가 AWS GovCloud(미국 동부) 또는 AWS GovCloud(미국 서부) AWS 리전에 있는 경우 arn:aws:arn:aws-us-gov:로 바꿉니다.

eksctl create addon --name aws-ebs-csi-driver --cluster my-cluster --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_EBS_CSI_DriverRole --force

기존 설정과 충돌하는 --force 옵션과 Amazon EKS 추가 기능 설정을 제거할 경우, Amazon EKS 추가 기능의 업데이트 작업이 실패하고 충돌을 해결하는 데 도움이 되는 오류 메시지가 표시됩니다. 이 옵션을 사용하여 이러한 설정을 덮어쓰기 때문에 이 옵션을 지정하기 전에 Amazon EKS 추가 기능이 관리해야 하는 설정을 관리하지 않는지 확인합니다. 이 설정의 기타 옵션에 대한 자세한 내용은 eksctl 설명서의 추가 기능을 참조하세요. Amazon EKS Kubernetes 필드 관리에 대한 자세한 내용은  Kubernetes 필드 관리 섹션을 참조하세요.

AWS Management Console
AWS Management Console을 사용하여 Amazon EBS CSI 추가 기능을 추가하려면
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 좌측 탐색 창에서 클러스터를 선택합니다.

  3. Amazon EBS CSI 추가 기능을 구성할 클러스터의 이름을 선택합니다.

  4. 추가 기능(Add-ons) 탭을 선택합니다.

  5. 추가 기능 더 가져오기를 선택합니다.

  6. 추가 기능 선택 페이지에서 다음을 수행합니다.

    1. Amazon EKS 추가 기능 섹션에서 Amazon EBS CSI 드라이버 확인란을 선택합니다.

    2. 다음을 선택합니다.

  7. 선택한 추가 기능 설정 구성 페이지에서 다음을 수행합니다.

    1. 사용할 버전(Version)을 선택합니다.

    2. IAM 역할 선택에서 Amazon EBS CSI 드라이버 IAM 정책을 연결한 IAM 역할의 이름을 선택합니다.

    3. (선택 사항) 선택적 구성 설정을 확장할 수 있습니다. 충돌 해결 방법에서 재정의를 선택한 경우 기존 추가 기능에 대한 하나 이상의 설정을 Amazon EKS 추가 기능의 설정으로 덮어쓸 수 있습니다. 이 옵션을 사용 설정하지 않고 기존 설정과 충돌이 있는 경우 작업이 실패합니다. 결과 오류 메시지를 사용하여 충돌을 해결할 수 있습니다. 이 옵션을 선택하기 전에 Amazon EKS 추가 기능이 사용자가 자체 관리해야 하는 설정을 관리하지 않는지 확인하세요.

    4. 다음을 선택합니다.

  8. 검토 및 추가 페이지에서 생성을 선택합니다. 추가 기능 설치가 완료되면 설치한 추가 기능이 표시됩니다.

AWS CLI
AWS CLI을 사용하여 Amazon EBS CSI 추가 기능을 추가하려면

다음 명령을 실행합니다. my-cluster를 클러스터 이름으로, 111122223333을 계정 ID로, AmazonEKS_EBS_CSI_DriverRole을 이전에 생성한 역할의 이름으로 바꿉니다. 클러스터가 AWS GovCloud(미국 동부) 또는 AWS GovCloud(미국 서부) AWS 리전에 있는 경우 arn:aws:arn:aws-us-gov:로 바꿉니다.

aws eks create-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_EBS_CSI_DriverRole

Amazon EKS 추가 기능으로 Amazon EBS CSI 드라이버를 추가했으므로 샘플 애플리케이션 배포 및 CSI 드라이버 작동 여부 확인으로 진행할 수 있습니다. 이 절차에는 스토리지 클래스 설정이 포함됩니다.

Amazon EKS 추가 기능으로 Amazon EBS CSI 드라이버 업데이트

Amazon EKS는 새 버전이 릴리스되거나 새 Kubernetes 마이너 버전으로 클러스터를 업데이트한 후 클러스터의 Amazon EBS CSI를 자동으로 업데이트하지 않습니다. 기존 클러스터에서 Amazon EBS CSI를 업데이트하려면 업데이트를 시작해야 합니다. 그러면 Amazon EKS가 추가 기능을 업데이트합니다.

eksctl
eksctl을 사용하여 Amazon EBS CSI 추가 기능을 업데이트하려면
  1. Amazon EBS CSI 추가 기능의 최신 버전을 확인합니다. my-cluster을 클러스터 이름으로 교체합니다.

    eksctl get addon --name aws-ebs-csi-driver --cluster my-cluster

    예제 출력은 다음과 같습니다.

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE aws-ebs-csi-driver v1.11.2-eksbuild.1 ACTIVE 0 v1.11.4-eksbuild.1
  2. 추가 기능을 이전 단계의 출력에서 UPDATE AVAILABLE에 반환된 버전으로 업데이트합니다.

    eksctl update addon --name aws-ebs-csi-driver --version v1.11.4-eksbuild.1 --cluster my-cluster \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_EBS_CSI_DriverRole --force

    기존 설정과 충돌하는 --force 옵션과 Amazon EKS 추가 기능 설정을 제거할 경우, Amazon EKS 추가 기능의 업데이트 작업이 실패하고 충돌을 해결하는 데 도움이 되는 오류 메시지가 표시됩니다. 이 옵션을 사용하여 이러한 설정을 덮어쓰기 때문에 이 옵션을 지정하기 전에 Amazon EKS 추가 기능이 관리해야 하는 설정을 관리하지 않는지 확인합니다. 이 설정의 기타 옵션에 대한 자세한 내용은 eksctl 설명서의 추가 기능을 참조하세요. Amazon EKS Kubernetes 필드 관리에 대한 자세한 내용은  Kubernetes 필드 관리 섹션을 참조하세요.

AWS Management Console
AWS Management Console을 사용하여 Amazon EBS CSI 추가 기능을 업데이트하려면
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 좌측 탐색 창에서 클러스터를 선택합니다.

  3. Amazon EBS CSI 추가 기능을 업데이트할 클러스터의 이름을 선택합니다.

  4. 추가 기능(Add-ons) 탭을 선택합니다.

  5. Amazon EBS CSI 드라이버를 선택합니다.

  6. 편집을 선택합니다.

  7. Amazon EBS CSI 드라이버 구성 페이지에서 다음을 수행합니다.

    1. 사용할 버전(Version)을 선택합니다.

    2. IAM 역할 선택에서 Amazon EBS CSI 드라이버 IAM 정책을 연결한 IAM 역할의 이름을 선택합니다.

    3. (선택 사항) 필요한 경우 선택적 구성 설정을 확장하고 수정할 수 있습니다.

    4. 변경 사항 저장을 선택합니다.

AWS CLI
AWS CLI을 사용하여 Amazon EBS CSI 추가 기능을 업데이트하려면
  1. Amazon EBS CSI 추가 기능의 최신 버전을 확인합니다. my-cluster을 클러스터 이름으로 교체합니다.

    aws eks describe-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver --query "addon.addonVersion" --output text

    예제 출력은 다음과 같습니다.

    v1.11.2-eksbuild.1
  2. 클러스터 버전에 사용할 수 있는 Amazon EBS CSI 추가 기능 버전을 확인합니다.

    aws eks describe-addon-versions --addon-name aws-ebs-csi-driver --kubernetes-version 1.23 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" --output text

    예제 출력은 다음과 같습니다.

    v1.11.4-eksbuild.1
    True
    v1.11.2-eksbuild.1
    False

    아래에 True가 있는 버전이 추가 기능이 생성될 때 배포된 기본 버전입니다. 추가 기능이 생성될 때 배포된 버전이 사용 가능한 최신 버전이 아닐 수도 있습니다. 이전 출력에서는 추가 기능이 생성될 때 최신 버전이 배포됩니다.

  3. 추가 기능을 이전 단계의 출력에서 True가 반환된 버전으로 업데이트합니다. 출력에서 반환된 경우 이후 버전으로 업데이트할 수도 있습니다.

    aws eks update-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver --addon-version v1.11.4-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_EBS_CSI_DriverRole --resolve-conflicts PRESERVE

    PRESERVE(보존) 옵션에서는 추가 기능에 대해 설정한 사용자 정의 설정이 있으면 보존합니다. 이 설정의 기타 옵션에 대한 자세한 내용을 알아보려면 Amazon Web Services CLI Command Reference(Amazon Web Services 명령 레퍼런스)의 update-addon을 참조하세요. Amazon EKS 추가 기능에 대한 자세한 내용은 Kubernetes 필드 관리 섹션을 참조하세요.

Amazon EBS CSI 추가 기능 제거

Amazon EKS 추가 기능을 제거하는 경우 다음 두 가지 옵션이 있습니다.

  • 클러스터에 추가 기능 소프트웨어 보존 – 이 옵션은 모든 설정에 대한 Amazon EKS 관리를 제거합니다. 또한 업데이트를 시작한 후 Amazon EKS가 업데이트를 알리고 Amazon EKS 추가 기능을 자동으로 업데이트하는 기능을 제거합니다. 그러나 클러스터에 추가 기능 소프트웨어는 유지됩니다. 이 옵션을 사용하면 추가 기능을 Amazon EKS 추가 기능이 아닌 자체 관리형 설치 기능으로 만들 수 있습니다. 이 옵션을 사용하면 추가 기능에 대한 가동 중지 시간이 없습니다. 이 절차의 명령은 이 옵션을 사용합니다.

  • 클러스터에서 추가 기능 소프트웨어 완전히 제거(Remove the add-on software entirely from your cluster) - 클러스터에 종속된 리소스가 없는 경우에만 클러스터에서 Amazon EKS 추가 기능을 제거하는 것이 좋습니다. 이 옵션을 수행하려면 이 절차에서 사용하는 명령에서 --preserve를 삭제합니다.

추가 기능에 연결된 IAM 계정이 있는 경우 IAM 계정은 제거되지 않습니다.

eksctl, AWS Management Console 또는 AWS CLI를 사용하여 Amazon EBS CSI 추가 기능을 제거할 수 있습니다.

eksctl
eksctl을 사용하여 Amazon EBS CSI 추가 기능을 제거하려면

my-cluster를 클러스터 이름으로 바꾸고 다음 명령을 실행합니다.

eksctl delete addon --cluster my-cluster --name aws-ebs-csi-driver --preserve
AWS Management Console
AWS Management Console을 사용하여 Amazon EBS CSI 추가 기능을 제거하려면
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 좌측 탐색 창에서 클러스터를 선택합니다.

  3. Amazon EBS CSI 추가 기능을 제거할 클러스터의 이름을 선택합니다.

  4. 추가 기능(Add-ons) 탭을 선택합니다.

  5. Amazon EBS CSI 드라이버를 선택합니다.

  6. 제거(Remove)를 선택합니다.

  7. 제거: aws-ebs-csi-driver 확인 대화 상자에서 다음을 수행합니다.

    1. 추가 기능에 대한 Amazon EKS의 설정 관리를 중지하려면 클러스터에 보존을 선택합니다. 클러스터에 추가 소프트웨어를 유지하려면 이렇게 합니다. 이는 추가 기능의 모든 설정을 스스로 관리할 수 있도록 하기 위한 것입니다.

    2. aws-ebs-csi-driver을 입력합니다.

    3. 제거(Remove)를 선택합니다.

AWS CLI
AWS CLI을 사용하여 Amazon EBS CSI 추가 기능을 제거하려면

my-cluster를 클러스터 이름으로 바꾸고 다음 명령을 실행합니다.

aws eks delete-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver --preserve