본문 바로가기
AEWS2기

3-1-1. AWS EBS Controller

by yeongki0944 2024. 3. 22.

 

[inovex blog] Kubernetes Storage: Ephemeral Inline Volumes, Volume Cloning, Snapshots and more!

 

EBS CSI driver

  • kubernetes에서 EBS볼륨을 쉽게 프로비저닝하고 관리하는 기능

[O'REILLY] Production Kubernetes - ch4

 

 

[aws] Amazon EBS CSI driver

 

Amazon EBS CSI 드라이버 IAM 역할 생성

  • EBS CSI 플러그인이 사용자를 대신하여 AWS API를 호출한다
    • IAM권한이 필요
# ISRA 설정 : AWS관리형 정책 AmazonEBSCSIDriverPolicy 사용
eksctl create iamserviceaccount \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster ${CLUSTER_NAME} \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve \
--role-only \
--role-name AmazonEKS_EBS_CSI_DriverRole
# Amazon EBS CSI driver addon 추가
eksctl create addon --name aws-ebs-csi-driver --cluster ${CLUSTER_NAME} --service-account-role-arn arn:aws:iam::${ACCOUNT_ID}:role/AmazonEKS_EBS_CSI_DriverRole --force
kubectl get sa -n kube-system ebs-csi-controller-sa -o yaml | head -5
# gp3 스토리지 클래스 생성 - Link
kubectl get sc
cat <<EOT > gp3-sc.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: gp3
allowVolumeExpansion: true
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
type: gp3
#iops: "5000"
#throughput: "250"
allowAutoIOPSPerGBIncrease: 'true'
encrypted: 'true'
fsType: xfs # 기본값이 ext4
EOT
kubectl apply -f gp3-sc.yaml