AWS EKS에서 PersistentVolumeClaim을 통해 EFS 사용

7008 단어 ekskubernetesAWS

Amazon EFSCSI 드라이버



EKS에서 EFS를 조작하는 도구?

참고



htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 에 ks / ㅁ st / 우세 r 굉장히 / s 토라게 - c ぁせ s. HTML
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 에 ks / ㅁ st / 우세 r 구이로 / 에 fs-c 해. HTML

StorageClass가 배포되었는지 확인



1.14 이상이면 기본적으로 배포됩니다.
그렇다면 위의 URL에서 수동으로 배포해야합니다.
kubectl get storageclass

출력 결과
NAME            PROVISIONER             AGE
gp2 (default)   kubernetes.io/aws-ebs   11h

EFSCSI 드라이버 배포


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

DeamonSet이 배포되었는지 확인


kubectl get daemonsets efs-csi-node --namespace=kube-system

출력 결과
NAME           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
efs-csi-node   2         2         0       2            0           beta.kubernetes.io/os=linux   91s

CSI 드라이버가 배포되었는지 확인


kubectl get csidrivers.storage.k8s.io

출력 케카
NAME              CREATED AT
efs.csi.aws.com   2019-10-27T08:08:04Z

EKS가 작동하는 VPCID 확인


aws eks describe-cluster --name k8s-cluster --query cluster.resourcesVpcConfig.vpcId --output text

출력 결과


vpc-059ad19ca888486c4

IP 범위(CIDR 블록) 확인


aws ec2 describe-vpcs --vpc-ids vpc-059ad19ca888486c4

출력 결과
            "CidrBlockAssociationSet": [
                {
                    "AssociationId": "vpc-cidr-assoc-0a2a4f054ca33b5f0",
                    "CidrBlock": "192.168.0.0/16",
                    "CidrBlockState": {
                        "State": "associated"
                    }
                }

보안 그룹 만들기





인바운드 규칙 만들기





EFS 만들기





샘플 앱을 배포하여 동작 확인



드라이버 클론


git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git

디렉토리 이동


cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/

파일 시스템 ID 확인


aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text

출력 결과
fs-32b4854b

pv.yaml의 volumeHandle을 위의 파일 시스템 ID로 변경



specs/pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-pv
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-32b4854b

pv,pvc.storageclass,sampleapp 배포


kubectl apply -f specs/

출력 결과
persistentvolumeclaim/efs-claim created
pod/app1 created
pod/app2 created
persistentvolume/efs-pv created
storageclass.storage.k8s.io/efs-sc created

pv가 배포되었는지 확인


kubectl get pv

출력 결과
NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               STORAGECLASS   REASON   AGE
efs-pv   5Gi        RWX            Retain           Bound    default/efs-claim   efs-sc                  93s

pv에 대한 자세한 정보 표시


kubectl describe pv efs-pv

출력 결과
EFS 파일 시스템은 VolumeHandle
Name:            efs-pv
Labels:          <none>
Annotations:     kubectl.kubernetes.io/last-applied-configuration:
                   {"apiVersion":"v1","kind":"PersistentVolume","metadata":{"annotations":{},"name":"efs-pv"},"spec":{"accessModes":["ReadWriteMany"],"capaci...
                 pv.kubernetes.io/bound-by-controller: yes
Finalizers:      [kubernetes.io/pv-protection]
StorageClass:    efs-sc
Status:          Bound
Claim:           default/efs-claim
Reclaim Policy:  Retain
Access Modes:    RWX
VolumeMode:      Filesystem
Capacity:        5Gi
Node Affinity:   <none>
Message:
Source:
    Type:              CSI (a Container Storage Interface (CSI) volume source)
    Driver:            efs.csi.aws.com
    VolumeHandle:      fs-32b4854b
    ReadOnly:          false
    VolumeAttributes:  <none>
Events:                <none>

포드가 볼륨에 데이터를 쓰는지 확인


kubectl exec -ti app1 -- tail /data/out1.txt

출력 결과
Mon Oct 21 02:44:10 UTC 2019
Mon Oct 21 02:44:15 UTC 2019
Mon Oct 21 02:44:20 UTC 2019
Mon Oct 21 02:44:25 UTC 2019
Mon Oct 21 02:44:30 UTC 2019
Mon Oct 21 02:44:35 UTC 2019
Mon Oct 21 02:44:40 UTC 2019
Mon Oct 21 02:44:45 UTC 2019
Mon Oct 21 02:44:50 UTC 2019
Mon Oct 21 02:44:55 UTC 2019

Pod2도 마침내 확인하십시오.
kubectl exec -ti app2 -- tail /data/out1.txt

좋은 웹페이지 즐겨찾기