emptyDir은 파드용 임시 디스크 영역으로 사용할 수 있다.
파드가 종료되면 삭제된다.
호스트의 임의 영역을 마운트할 수 없으며 호스트에 있는 파일을 참조할 수도 없다.
emptyDir.sizeLimit
로 리소스 제한을 할 수도 있다.
apiVersion: v1
kind: Pod
metadata:
name: sample-emptydir
spec:
containers:
- image: nginx:1.16
name: nginx-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir:
sizeLimit: 128Mi
/cache
) 영역에 대해 150MB 용량의 파일을 작성하면 용량 초과로 파드가 Evict(축출) 된다.emptyDir은 호스트상의 디스크 영역뿐만 아니라 고속 tmpfs 메모리 영역을 사용할 수도 있다.
메모리 영역을 사용하려면 emptyDir.medium
에 Memory를 지정한다.
apiVersion: v1
kind: Pod
metadata:
name: sample-emptydir-memory
spec:
containers:
- image: nginx:1.16
name: nginx-container
resources:
limits:
memory: 64Mi
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir:
medium: Memory # 메모리 사용
sizeLimit: 128Mi
hostPath는 쿠버네티스 노드상의 영역을 컨테이너에 매핑하는 플러그인
type은 Directory/DirectoryOrCreate/File/Socket/BlockDevice 등을 선택할 수 있다.
보안상의 이유로 안전하지 않은 컨테이너가 업로드될 수 있으므로 사용하지 말 것을 권장한다.
보안상 hostPath를 사용할 수 없는 쿠버네티스 환경도 있다.
apiVersion: v1
kind: Pod
metadata:
name: sample-hostpath
spec:
containers:
- image: nginx:1.16
name: nginx-container
volumeMounts:
- mountPath: /srv
name: hostpath-sample
volumes:
- name: hostpath-sample
hostPath:
path: /etc
type: DirectoryOrCreate
/srv
에 호스트의 /etc
를 마운트하는 것을 의미한다.downwardAPI는 파드 정보 등을 파일로 배치하기 위한 플러그인
fieldRef
와 resourceFieldRef
의 사용 방법과 같다.
apiVersion: v1
kind: Pod
metadata:
name: sample-downward-api
spec:
containerS:
- name: nginx-container
image: nginx:1.16
volumeMounts:
- name: downward-api-volume
mountPath: /srv
volumes:
- name: downward-api-volume
downwardAPI:
items:
- path: "podname"
fieldRef:
fieldPath: metadata.name
- path: "cpu-request"
resourceFieldRef:
containerName: nginx-container
resource: requests.cpu