- Volume은 K8s storage의 추상화 개념
- Container는 pod에 binding 되는 volume을 mount하고 마치 local filesystem에 있는 것처럼 storage에 접근
- https://kubernetes.io/docs/concepts/storage/volumes/ 참고
- K8s storage definition
volumes: #node에 존재
- name: html
hostPath:
path: /hostdir_or_file
- container 단위로 mount
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
<이미지 출처 : https://www.youtube.com/watch?v=yFqeoeR3l6Q&list=PLApuRlvrZKohLYdvfX-UEFYTE7kfnnY36&index=5 >
[Hands - on]
- node1,2,3에 각각 /webdata/index.html 생성
- 각 node를 구분할 수 있게 index.html 내용을 Node1,2,3로 기재
mkdir /webdata
cd /webdata
cat > index.html << EOF
Node1
EOF
- control-plane에서 pod 생성 및 확인
vi hostpath.yaml
apiVersion: v1
kind: Pod
metadata:
name: web
spec:
volumes:
- name: html
hostPath:
path: /webdata
containers:
- image: nginx:1.14
name: nginx
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
kubectl create -f hostpath.yaml
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
web 1/1 Running 0 18s 10.36.0.1 node1.example.com <none> <none>
curl 10.36.0.1
Node1
hostPath
- Node의 파일시스템의 디렉토리나 파일을 컨테이너에 마운트
- Node의 디렉토리나 파일을 생성하여 마운트 가능
- hostPath는 type 지시어를 이용해 mount 구성의 요구를 추가 가능
- DirectoryOrCreate : 주어진 경로에 아무것도 없다면, 필요에 따라 kubelet의 소유권, 권한을 0755로 설정한 빈 디렉터리를 생성(default)
- Directory : 주어진 경로에 디렉터리가 존재해야 함
- FileOrCreate : 주어진 경로에 아무것도 없다면, 필요에 따라 kubelet의 소유권, 권한을 0755로 설정한 file을 생성
- File : 주어진 경로에 파일이 존재해야 함
- https://kubernetes.io/docs/concepts/storage/volumes/#hostpath 참고
- definition
volumes:
- name: html
hostPath:
path: /hostdir_or_file
type: DirectoryOrCreate
참고 :
https://www.youtube.com/watch?v=yFqeoeR3l6Q&list=PLApuRlvrZKohLYdvfX-UEFYTE7kfnnY36&index=5
'INFRA > DevOps' 카테고리의 다른 글
[K8s] Storage NFS (0) | 2023.03.27 |
---|---|
[k8s] Storage emptyDir 및 share volume (0) | 2023.03.20 |
[k8s] 인증과 권한 관리 - 권한편 (0) | 2023.03.06 |
[K8s] 인증과 권한 관리 - 인증편 (1) | 2023.02.27 |
[K8s] Cordon& Drain (1) | 2023.02.20 |
댓글