본문 바로가기
INFRA/DevOps

[K8s] Storage 개념 및 hostPath

by BTC_프로틴 2023. 3. 14.
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

댓글