ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • aws efs csi 사용 가이드
    Cloud/AWS 2022. 10. 25. 17:56

    efs csi 사용가이드에 대해 정리해보겠습니다.

    우선 efs를 사용하려면 efs IAM role 권한이 필요합니다. 하지만 저는 빠른 생성 가이드를 위해,, admin 권한으로 ec2에 적용할 role을 생성해보겠습니다.

    IAM Role 생성

    AWS 콘솔에 접속하여 "IAM > 역할 > 역할 만들기" 클릭

    "AWS서비스 > 사용 사례 EC2" 클릭

    "AdministratorAccess > 생성 "클릭

    EC2 Instance에 연결
    • 인스턴스 새로 생성시 인스턴스 세부 정보 구성에서 방금 생성한 IAM Role로 설정
    • 기존 인스턴스에 적용시 instance list 창에서 아래와 같이 수정
      "instance list 창 > 작업 > 보안 > IAM 역할 수정 > 방금 생성한 IAM role 설정 > 역할 업데이트"

    efs 생성 및 security group inbound, outbound 규칙 설정
    • efs 생성
      vpc 선택은 ec2 instance와 동일한 vpc
      efs를 생성할때 따로 security group을 지정하지 않으면 default security group으로 생성됨
    • efs security group의 inbound, outbound 규칙 설정
      efs를 사용하기 위해서는 사용하는 ec2 instance에서 efs 접근 허용 및 efs에서 ec2 instance 접근을 허용해야 함
      이를 위해 efs의 security group, ec2 instacne의 security group의 inbound/outbound 세팅이 필요
      "efs > 네트워크 > 보안그룹" 에 해당하는 모든 보안그룹들의 각 inbound, outbound 모두 허용

    ec2 instance 보안그룹 inbound, outbound 규칙 설정
    • ec2 instance security group의 inbound, outbound 규칙 설정
      마찬가지로 ec2 instance에 해당하는 모든 보안그룹들의 각 inbound, outbound 모두 허용
      ec2 instance 에 해당하는 보안그룹은 ec2 instance list에서 확인 가능

    efs-csi 배포

    efs-csi 배포

    kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-1.2"

    test storageClass / test pod 생성
    • fileSystemId 사용자의 efs id에 맞게 세팅 후 아래의 test-storageclass 생성
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: efs-sc
    provisioner: efs.csi.aws.com
    parameters:
      provisioningMode: efs-ap
      fileSystemId: [사용자의 fsId]
      directoryPerms: "700"
    • test-pod 생성
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: efs-claim
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: efs-sc
      resources:
        requests:
          storage: 5Gi
    ---
    apiVersion: v1
    kind: Pod
    metadata:
      name: efs-app
    spec:
      containers:
        - name: app
          image: centos
          command: ["/bin/sh"]
          args: ["-c", "while true; do echo $(date -u) >> /data/out; sleep 5; done"]
          volumeMounts:
            - name: persistent-storage
              mountPath: /data
      volumes:
        - name: persistent-storage
          persistentVolumeClaim:
            claimName: efs-claim


    pvc bound 및 pod가 생성되면 efs 생성을 정상적으로 끝마치셨습니다~!

    'Cloud > AWS' 카테고리의 다른 글

    [AWS] EFS 스토리지 사용 시, pod 내부 권한 에러  (0) 2022.05.12

    댓글

Designed by Tistory.