728x90
Amazon EBS CSI driver
kubernetes에서 AWS EBS 사용을 위해 기본적으로 제공하는 storage class 타입은 io1, gp2, sc1, st1 입니다. gp3, io2 타입의 EBS를 사용하기 위해서 Amazon EBS CSI driver 를 설치해야합니다. EKS 1.23 버전부터는 무조건 EBS CSI Driver만 사용해야합니다.
Install
helm을 사용하여 설치합니다. AWS의 IAM Role을 생성하고, policy 를 참고하여 권한설정을 해야합니다.
# values.yaml
controller:
replicaCount: 3
region: ap-northeast-2
serviceAccount:
create: true
name: ebs-csi-controller-sa
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::${ACCOUNT_ID}:role/ebs-csi-controller
node:
tolerateAllTaints: true
storageClasses:
- name: gp3
annotations:
storageclass.kubernetes.io/is-default-class: "true"
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Delete
allowVolumeExpansion: true
parameters:
type: gp3
csi.storage.k8s.io/fstype: ext4
$ helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
$ helm repo update
$ helm upgrade --install aws-ebs-csi-driver \
-n amazone-ebs \
-f values.yaml \
aws-ebs-csi-driver/aws-ebs-csi-driver
주의사항
AWS EBS를 PVC로 사용시 주로사용하는 gp2, gp3 타입은 여러 EC2 Instance에 연결할 수 없고, 같은 가용영역에 있는 EBS볼륨만 마운트할 수 있습니다. deployment, statefulset 사용시 아래의 코드와 같이 nodeAffinity를 사용하여, 하나의 가용영역에서만 실행할 수 있게 설정해야합니다.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- ap-northeast-2a
참고
728x90
'Kubernetes' 카테고리의 다른 글
Amazon EFS CSI Driver (0) | 2022.09.23 |
---|---|
Kubernetes RBAC 알아보기 (0) | 2022.09.22 |
CoreDNS NXDOMAIN 오류 해결 (0) | 2022.09.21 |
Resizing StatefulSet Persistent Volumes with zero downtime (2) | 2022.09.20 |
Kubernetes ServiceAccount로 kubeconfig 파일 생성 (0) | 2022.09.20 |