Amazon EFS를 Amazon EKS와 함께 사용하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 10월 9일

Amazon EFS(Amazon Elastic File System)을 Amazon EKS(Amazon Elastic Kubernetes Service)와 함께 사용하려면 어떻게 해야 합니까?

간략한 설명

efs-provisioner를 사용하여 EFS 스토리지를 Kubernetes의 영구 볼륨으로 탑재하면 Amazon EFS를 Amazon EKS 포드와 함께 사용할 수 있습니다. efs-provisioner는 클러스터에서 포드로 실행되고, EFS 볼륨에 액세스할 수 있으며, EFS 볼륨의 하위 디렉터리를 포드의 영구 볼륨으로 제공합니다.

efs-provisioner를 구성 및 배포하려면 다음 단계를 완료합니다.

해결 방법

1.    StorageClass 및 ConfigMap 매니페스트 파일을 다운로드하려면 다음 명령을 실행합니다.

wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/class.yaml
wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/configmap.yaml

2.    configmap.yaml 파일에서 file.system.idaws.region을 EFS에 적합한 값으로 변경합니다. 다음 예제를 참조하십시오.

apiVersion: v1
kind: ConfigMap
metadata:
  name: efs-provisioner
data:
  file.system.id: fs-390f9d92
  aws.region: us-west-2
  provisioner.name: example.com/aws-efs
  dns.name: ""

참고: AWS에서 할당한 DNS 이름(file-system-id.efs.aws-region.amazonaws.com) 대신 자체 DNS 이름으로 EFS를 탑재하려면 dns.name 속성을 사용합니다.

3.    StorageClass 및 ConfigMap을 클러스터에 적용하려면 다음 명령을 실행합니다.

kubectl apply -f class.yaml
kubectl apply -f configmap.yaml

4.    Deployment 및 ClusterRole 매니페스트 파일을 다운로드하려면 다음 명령을 실행합니다.

wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/deployment.yaml
wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/rbac.yaml

5.    deployment.yaml 파일에서 volumes 구성을 /경로로 변경합니다. 다음 예제를 참조하십시오.

volumeMounts:
  - name: pv-volume
  mountPath: /persistentvolumes
volumes:
  - name: pv-volume
    nfs:
      server: fs-1234abcd.efs.us-east-1.amazonaws.com
      path: /

참고: 이 업데이트된 구성을 통해 efs-provisioner는 EFS 볼륨의 루트에 프로비저닝하는 각 영구 볼륨을 지원하기 위한 하위 디렉터리를 생성할 수 있습니다.

6.    RBAC 리소스 및 배포 매니페스트를 적용하려면 다음 명령을 실행합니다.

kubectl apply -f rbac.yaml
kubectl apply -f deployment.yaml

중요: Kubernetes 리소스를 생성하고 올바르게 실행하려면 efs-provisioner에는 rbac.yaml 파일에 정의된 권한이 필요합니다.

7.    테스트 포트와 영구 볼륨 클레임을 다운로드하려면 다음 명령을 실행합니다.

  wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/claim.yaml
  wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/test-pod.yaml

8.    efs-provisioner가 올바르게 작동하는지 확인하려면 다음 명령을 실행하여 테스트 포드를 배포합니다.

kubectl apply -f claim.yaml
kubectl apply -f test-pod.yaml

참고: 이렇게 하면 테스트 포드가 시작되고 EFS 볼륨에 "touch /mnt/SUCCESS & & exit 0 | | exit 1"을 씁니다. 포드가 성공적으로 작성되었는지 확인하려면 로그와 EFS 볼륨을 확인하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?