Volume은 kubernetes 스토리지의 추상화 개념
컨테이너는 Pod에 바인딩 되는 볼륨을 마운트하고 마치 로컬 파일 시스템에 있는 것처럼 스토리지에 접근
Kubernetes 스토리지
volumes:
- name: html
hostPath:
path: /hostdir_or_file
# 컨테이너 단위로 mount
volumeMounts:
- name: html
mountPath: /webdata
emptyDir
Hostpath
gitRepo
nfs
gcePersistentDisk, awsElastic-BlockStore, azureDisk
cinder, cephfs, iscsi, flocker, glusterfs, quobyte, rbd, flexVolume, vsphere-volume, photonPersistentDisk, scaleIO
configMap, secret, downwardAPI
persistentVolumeClaim
emptyDir 볼륨은 빈 디렉토리로 시작
Pod 내부에서 실행중인 애플리케이션은 필요한 모든 파일을 작성
Pod를 삭제하면 볼륨의 내용이 손실됨
동일한 Pod에서 실행되는 컨테이너 간에 파일을 공유할 때 유용
(참고 URL : https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
https://kubernetes.io/docs/concepts/cluster-administration/logging/#sidecar-container-with-logging-agent)
5-1. weblog pod의 IP 확인
5-2. worker노드로 접속하여 weblog pod IP로 요청 시 요청에 응답
노드의 파일시스템의 디렉토리나 파일을 컨테이너에 마운트
노드에 디렉토리나 파일을 생성하여 마운트 가능
hostPath는 type 지시어를 이용해 mount 구성의 요구를 추가할 수 있음
# hostPath 예시
volumes:
- name: html
hostPath:
type: FileOrCreate
path: /hostdir_or_file
(참고 URL : https://kubernetes.io/docs/concepts/storage/volumes/#hostpath)
작업 클러스터 : k8s
/data/cka/fluentd.yaml 파일에 다음 조건에 맞게 볼륨 마운트를 설정하시오.
Worker node의 도커 컨테이너 디렉토리를 동일 디렉토리로 pod에 마운트 하시오
Worker node의 /var/log 디렉토리를 fluentd Pod에 동일이름의 디렉토리로 마운트 하시오.