emptyDir 볼륨에 권한 설정하기
emptyDir 볼륨에 권한 설정하기 (Set Permissions on an emptyDir Volume)
기능 상태: Kubernetes v1.37부터 Alpha; 기본적으로 비활성화.
이 기능을 사용하려면 여러분(또는 클러스터 관리자)이 클러스터의 모든 관련 컴포넌트에 대해 EmptyDirVolumeMode 기능 게이트를 활성화해야 해요. 기능 게이트 활성화/비활성화에 대한 자세한 내용은 참고하세요.
이 페이지는 mode 필드를 사용해 emptyDir 볼륨 디렉터리에 Unix 권한 비트를 설정하는 방법을 보여드려요.
출처: 문서
본문
시작하기 전에 (Before you begin)
쿠버네티스 클러스터가 필요하고, kubectl 명령줄 도구가 클러스터와 통신하도록 구성돼 있어야 해요. 이 튜토리얼은 컨트롤 플레인 호스트가 아닌 노드가 두 개 이상 있는 클러스터에서 실행하는 것을 권장해요. 아직 클러스터가 없다면 minikube로 만들거나 다음 쿠버네티스 플레이그라운드 중 하나를 사용할 수 있어요.
- iximiuz Labs
- Killercoda
- KodeKloud
쿠버네티스 서버가 v1.37 버전이어야 해요. 버전을 확인하려면 kubectl version을 입력하세요. API 서버와 kubelet에 EmptyDirVolumeMode 기능 게이트가 활성화돼 있어야 해요.
커스텀 권한이 있는 emptyDir 볼륨을 사용하는 Pod 만들기 (Create a Pod that uses an emptyDir volume with custom permissions)
emptyDir.mode 필드는 볼륨 디렉터리에 Unix 권한 비트(8진수로 0000부터 01777까지)를 설정할 수 있게 해 줘요. 지정하지 않으면 디렉터리가 기본 0777 권한으로 생성돼요.
예를 들어 파일 소유자만 자신의 파일을 삭제할 수 있도록 스티키 비트(sticky bit)가 설정된 공유 /tmp 디렉터리를 만들려면:
apiVersion: v1
kind: Pod
metadata:
name: emptydir-mode-demo
spec:
containers:
- image: registry.k8s.io/busybox
name: test-container
command: ["sleep", "3600"]
volumeMounts:
- mountPath: /tmp
name: tmp-volume
volumes:
- name: tmp-volume
emptyDir:
mode: 01777
pods/emptydir-volume-mode.yaml — 클러스터에 파드를 생성해요.
kubectl apply -f https://k8s.io/examples/pods/emptydir-volume-mode.yaml
파드가 실행 중인지 확인해요.
kubectl get pod emptydir-mode-demo
마운트된 볼륨의 권한을 확인해요.
kubectl exec emptydir-mode-demo -- ls -ld /tmp
출력은 다음과 비슷해요.
drwxrwxrwt 2 root root 4096 Jul 28 00:00 /tmp
끝의 t는 스티키 비트가 설정되었음을 확인해 줘요.
이 실습에서 만든 Pod를 삭제해요.
kubectl delete pod emptydir-mode-demo
다음 단계 (What's next)
emptyDir볼륨에 대해 더 배우기