본문 바로가기
AWS/EKS

AWS EKS 추가 기능(EBS,EFS)

by aws-evan 2025. 2. 10.
반응형

 

 

 

 

AWS EKS에서 데이터를 저장하려면 EBS 또는 EFS를 사용해야 하며, 추가 기능(Add-on)은 필요한 경우 활성화하여 사용할 수 있습니다

 

 

 

 

  • 공식문서

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/workloads-add-ons-available-eks.html

 

AWS 추가 기능 - Amazon EKS

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

EBS,EFS  CSI

 

특징 EBS (Elastic Block Store) EFS (Elastic File System)
스토리지 타입 블록 스토리지 파일 스토리지
접근 모드  1개의 노드에서만 사용 가능  여러 노드에서 사용 가능
Multi-AZ 지원 ❌ 불가능 (단일 AZ 전용) ✅ 가능 (다중 AZ 지원)
Pod가 다른 노드로 이동 시 사용 가능 여부 ❌ 불가능 (특정 노드에 종속) ✅ 가능 (여러 노드에서 접근 가능)
성능 높은 IOPS, 지연시간 짧음 (SSD 지원) 파일 기반, 고속 데이터 공유 가능
비용 사용한 용량만 과금
(gp3, io1 옵션으로 성능 조정 가능)
고정 요금제
(표준, Elastic Throughput)

 

 

Kubernetes의 서비스 계정과 자동 연결하지 않으므로 IAM OIDC 공급자와 연결하는 작업이 필수
EBS, EFS 둘 다 사전에 사용해야함
eksctl utils associate-iam-oidc-provider --cluster=my-cluster --approve

 

 

1. EKS EBS CSI

 

1) EKS EBS CSI 드라이버 버전 확인

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

 

2) EKS EBS CSI 드라이버 필수 IAM 권한 적용

  • IAM 서비스 계정이 생성
    • EKS Cluster 연결
    • IAM Role 생성 및 연결
eksctl create iamserviceaccount \
    --name ebs-csi-controller-sa \
    --namespace kube-system \
    --cluster my-cluster \
    --role-name AmazonEKS_EBS_CSI_DriverRole \
    --role-only \
    --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
    --approve

 

3) EKS EBS CSI Add-on 추가

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

 

 

4) EKS EBS CSI 확인

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

 

5) EKS EBS Pod 확인

kubectl get pods -A | grep ebs

 

 

6) EKS EBS Storageclass 생성

  • Amazon EKS Auto Mode의 StorageClass는 애플리케이션이 영구 스토리지를 요청할 때 Amazon EBS 볼륨이 자동으로 프로비저닝되는 방식
  • provisioner : ebs.csi.eks.amazonaws.com  #EKS Auto mode
  • storageclass.kubernetes.io/is-default-class: "true" #해당 Strogaclass default 사용
  • volumeBindingMode
    • Immediate : pvc가 생성되면 즉시 볼륨 바인딩
    • WaitForFirstConsumer :  PVC는 Pod가 실제로 스케줄링될 때까지 바인딩되지 않음.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: auto-ebs-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.eks.amazonaws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: gp3
  encrypted: "true"
kubectl apply -f storage-class.yaml

 

 

 

2. EKS EFS CSI

 

1) EKS EFS CSI 드라이버 버전 확인

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

 

 

2) EKS EFS CSI 드라이버 필수 IAM 권한 적용

  • IAM 서비스 계정이 생성
    • EKS Cluster 연결
    • IAM Role 생성 및 연결
eksctl create iamserviceaccount \
  --name efs-csi-controller-sa \
  --namespace kube-system \
  --cluster my-cluster \
  --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \
  --approve \
  --role-only \
  --role-name AmazonEKS_EFS_CSI_DriverRole

 

3) EKS EFS CSI Add-on 추가

eksctl create addon --name aws-efs-csi-driver\
 --cluster my-cluster \
 --service-account-role-arn arn:aws:iam::"account-id":role/AmazonEKS_EFS_CSI_DriverRole\
 --force

 

4) EKS EFS CSI Add-on 확인

eksctl get addon --cluster my-cluster

 

5) EKS EFS CSI Pod 확인

kubectl get daemonset -n kube-system | grep efs-csi
kubectl get pods -n kube-system | grep efs-csi

 

 

6) EKS EFS Storageclass 생성

  • 예제 코드 다운로드
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/

 

  • EFS ID 검색
    • fs-582a03f3
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text

  • Storageclass 수정
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: efs-dp-sc
provisioner: efs.csi.aws.com
parameters:
  provisioningMode: efs-ap
  fileSystemId: fs-07b7d551ab0ebc7f2
  directoryPerms: "700"

 

 

 

 

반응형

'AWS > EKS' 카테고리의 다른 글

AWS EFS CSI Driver 설치 가이드  (0) 2024.12.01
AWS EKS EBS CSI Driver  (0) 2024.11.08
AWS EKS 생성하기  (0) 2024.11.07

댓글