개요 : 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 배포

---
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

+ Recent posts