Cloud/AWS
[AWS] EFS 스토리지 사용 시, pod 내부 권한 에러
cloud_nice
2022. 5. 12. 13:39
AWS 환경에서 EFS 스토리지를 사용하여 PV를 생성할때, pod 내부에서 파일 권한 혹은 유저 권한에 대한 에러 로그가 나타나는 현상이 있습니다. 예시 로그로는 아래와 같습니다.
ex) chown: /var/lib/data: Operation not permitted
ex) /var/lib/data has wrong ownership error
이와 같은 에러의 원인은 EFS 스토리지를 사용할 경우, pod내부에 설정해준 uid/gid & 파일권한이 EFS 액세스포인트값으로 덮어 씌워지기 때문입니다. AWS 콘솔에 접속하여 생성된 EFS 액세스포인트를 살펴보면 initContainer 상에는 999로 주었던 uid가 예를 들어 1001과 같이 랜덤한 값으로 설정 되어있는 것을 보실 수 있습니다.
해결 방안은 다음과 같습니다. storageClass 단에서부터 uid/gid & directoryPerms 파라미터를 사용해 권한 문제를 해결할 수 있습니다. 권한은 앱별로 필요한 uid/gid & directorPerms 을 세팅해주세요. storageClass 예시 yaml도 첨부 드립니다.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
name: efs-sc
parameters:
basePath: /dynamic_provisioning
directoryPerms: "755"
gid: "0"
uid: "0"
fileSystemId: [fileSystemId]
provisioningMode: efs-ap
provisioner: efs.csi.aws.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
참고사항으로 efs-csi-driver:v1.13.4 버전에서는 해당 옵션이 적용되지 않습니다. (버그? 몰겟삼)
해서 efs-csi-driver:v1.13.8 버전 사용을 추천드리는 바 입니다.
aws 공부를 꾸준히 해서 글로 자주 찾아 뵐 수 있도록... 노력.. 하겠습니다 ~ !