개요 : AWS EKS 에서 볼륨을 사용하기 위해서는 ebs-csi-driver / efs-csi-driver 가 필요합니다
ebs-csi-driver 의 경우 Add-on 형식으로 생성이 가능해져서 어렵지 않개 생성이 가능합니다.
다만, efs-csi-driver 의 경우 Add-on 형식으로 제공이 불가능 하기에 수동으로 설치를 해야 합니다.
설치방법
1. IAM 자격증명 공급자 생성
2. IAM Role / Policy 생성
3. EKS 에 install yaml 배포
1. IAM 자격 증명 공급자 생성
- IAM -> 자격증명 공급자 -> 공급자 추가
- 공급자 URL 에 EKS 개요 탭에 있는 'OpenID Connect 공급자 URL' 복사하여 입력 -> 지문 가져오기
- 대상에 sts.amazonaws.com 입력 후 생성
2. IAM Role / Policy 생성
- Policy 정책 생성 (정책 이름은 상관 없음)
- Role 생성(아래 신뢰관계로 생성) 후 생성한 Policy 추가
Policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:DescribeAccessPoints",
"elasticfilesystem:DescribeFileSystems",
"elasticfilesystem:DescribeMountTargets",
"ec2:DescribeAvailabilityZones"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:CreateAccessPoint"
],
"Resource": "*",
"Condition": {
"StringLike": {
"aws:RequestTag/efs.csi.aws.com/cluster": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:TagResource"
],
"Resource": "*",
"Condition": {
"StringLike": {
"aws:ResourceTag/efs.csi.aws.com/cluster": "true"
}
}
},
{
"Effect": "Allow",
"Action": "elasticfilesystem:DeleteAccessPoint",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/efs.csi.aws.com/cluster": "true"
}
}
}
]
}
Role 신뢰 관계
- Statement.Federated 에서 OIDC 정보 수정(1번에서 생성한 OIDC 정보에 있음)
- Conditon.StringEquals 에서 OIDC 정보 수정(1번에서 생성한 OIDC 정보에 있음)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-controller-sa"
}
}
}
]
}
3. EKS 에 install yaml 배포
- 아래 페이지(gitlab)에 있는 yaml 중 kustomization.yaml 를 제외하고 배포
- 주의 : controller-serviceaccount.yaml 는 수정을 해야함
- 아래 코드에서 annontations 부분에 생성한 iam role 을 생성
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name: aws-efs-csi-driver
name: efs-csi-controller-sa
namespace: kube-system
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/AmazonEKS_EFS_CSI_DriverRole
https://github.com/kubernetes-sigs/aws-efs-csi-driver/tree/master/deploy/kubernetes/base
GitHub - kubernetes-sigs/aws-efs-csi-driver: CSI Driver for Amazon EFS https://aws.amazon.com/efs/
CSI Driver for Amazon EFS https://aws.amazon.com/efs/ - GitHub - kubernetes-sigs/aws-efs-csi-driver: CSI Driver for Amazon EFS https://aws.amazon.com/efs/
github.com
참고 문서 : https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/efs-csi.html
Amazon EFS CSI 드라이버 - Amazon EKS
spec.capacity는 Amazon EFS가 Elastic 파일 시스템이므로 Amazon EFS CSI 드라이버에서는 작동하지 않습니다. 영구 볼륨 및 영구 볼륨 클레임의 실제 스토리지 용량 값은 파일 시스템을 생성할 때는 사용되
docs.aws.amazon.com
'AWS' 카테고리의 다른 글
EKS Config Update (0) | 2023.07.08 |
---|---|
Multi Region Endpoint Sharing (0) | 2023.06.15 |
AWS Multi Region Network 구성 (0) | 2023.06.07 |
ECR Multi Region Replication (0) | 2023.06.04 |
EKS 최초 생성 권한 문제 (0) | 2023.04.16 |