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시간마다 허용되므로 주의!
새로 파드가 생성되거나 기존 데이터가 사라지지 않고 타입만 바뀝니다.
주의)
iops 는 DB 용량 대비 500:1 까지만 가능.
ex db 20G → iops 최대 설정량 10000
참고
'AWS' 카테고리의 다른 글
[AWS Marketplace] resolveCustomer API 관련 기록 (0) | 2024.12.29 |
---|---|
[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 |