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
Reference
이 문제에 관하여(AWS EKS에서 PersistentVolumeClaim을 통해 EFS 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuta_vamdemic/items/7ffd051361afdc9719d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)