본문 바로가기
AWS

[EKS] PVC 로 EBS 동적 프로비저닝하기

by HH_g 2024. 9. 29.

 

aws-ebs-csi-driver volumeModificationFeature 를 활성화하면 pvc 의 annotation 에서 볼륨 처리량/iops/볼륨 유형을 수정하여 원하는 스펙의 EBS 를 사용할 수 있습니다.

 

현재 addon:

{
    "addons": [
        "aws-ebs-csi-driver",
        "coredns",
        "kube-proxy",
        "vpc-cni"
    ]
}
aws eks describe-addon-configuration --addon-name aws-ebs-csi-driver --addon-version v1.19.0-eksbuild.2 --query configurationSchema --output text | jq

...
{
    "addon": {
        "addonName": "aws-ebs-csi-driver",
        "clusterName": "{cluster-name}",
        "status": "ACTIVE",
        "addonVersion": "v1.35.0-eksbuild.1",
        "health": {
            "issues": []
        },
        "addonArn": "arn:aws:eks:ap-northeast-1:{id}:addon/{cluster-name}/aws-ebs-csi-driver/...",
        "createdAt": "2024-01-12T11:16:03.819000+09:00",
        "modifiedAt": "2024-09-27T08:01:23.472000+09:00",
    }
}

 

volumeModificationFeature 활성화

volumeModificationFeature 활성화는 세 가지 방법으로 가능한데,

 

1. 테라폼

cluster_addons = {
    aws-ebs-csi-driver = {
      most_recent = true
      configuration_values = jsonencode({
        controller = {
          volumeModificationFeature = {
            enabled = true
          }
        }
      })
    }
    ...
}

 

2. aws cli

aws eks update-addon --cluster-name {cluster-name} --addon-name aws-ebs-csi-driver --addon-version {addon-versino} --configuration-values 'file://aws-ebs-csi-addon-config.json'
  "controller": {
    "volumeModificationFeature": {
       "enabled": true
    }

 

3. eks 콘솔에서도 가능합니다.

 

 

활성화하면 kube-system ns 의 ebs controller 가 rolling update 되면서 컨테이너가 하나 더 생깁니다.

 

 

이제 pvc 로 원하는 스펙의 EBS 를 생성할 수 있습니다.

 

PVC 예시

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ebs-claim
  annotations:
    "ebs.csi.aws.com/volumeType": "gp3"
    "ebs.csi.aws.com/iops": "5000"
    "ebs.csi.aws.com/throughput": "250"
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ebs-sc
  resources:
    requests:
      storage: 4Gi
 

AWS EC2 API 와 일치하게 조정되어 새로운 PVC와 기존 PVC 모두에 적용 가능합니다.

볼륨당 한 번의 볼륨 변경은 6시간마다 허용되므로 주의!

새로 파드가 생성되거나 기존 데이터가 사라지지 않고 타입만 바뀝니다.

 

 

 

PVC 수정 전
IOPS 7000 으로 수정 후

 

 

 

주의)

iops 는 DB 용량 대비 500:1 까지만 가능.

ex db 20G → iops 최대 설정량 10000

 

 

 

 

 

 

참고

https://aws.amazon.com/ko/blogs/storage/simplifying-amazon-ebs-volume-migration-and-modification-using-the-ebs-csi-driver/

 

 

'AWS' 카테고리의 다른 글

[DB] EBS Deep dive  (2) 2024.10.03
[AWS] SSM, KSM  (1) 2024.09.29
[EKS] Python 코드로 EKS 클러스터 접근하기  (0) 2024.09.29
[AWS] Assume role  (0) 2024.09.29
[AWS] EBS EFS 선택 기준  (0) 2024.09.17