일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- EFS CSI Driver
- 쿠버네티스
- 솔데스크
- 그라파나 대시보드
- Prometheus install
- 깃허브 액션
- blue-green
- Solution Architecture
- EKS 클러스터
- 메탈LB
- 그라파나 시각화
- Aurora cluster
- github action 사용법
- Firelens
- jenkins
- terraform
- livenessPorbe
- SAA 합격 후기
- helm
- kubernetes 동작 원리
- LoadBalancer Controller
- 딥레이서 보상함수
- 딥레이서
- grafana on kubernetes
- headless service
- AWS 딥레이서
- 쿠버네티스 컴포넌트
- Kubernets on Jenkins
- Kubernetes
- 로드밸런서 컨트롤러
Archives
mingming
Kubernetes - Storage 본문
Volume
- 파드의 컨테이는 이미지로부터 파일 시스템을 제공받습니다. 그러나 파드가 종료되면 파드 내에 변경된 데이터는 더이상 사용할 수 없게됩니다.
- 쿠버네티스의 파드는 새로 생성된 데이터를 보존하기 위해 외부 저장소 볼륨을 생성하고, 이런 볼륨을 컨테이너에 마운트해 사용합니다.
- 기본적인 볼륨의 라이프사이클은 파드의 라이프사이클과 같아 파드가 생성되면 볼륨도 같이 생성되고, 파드가 삭제되면 볼륨도 같이 삭제됩니다.
- persistentVolume 및 PersistentVolumeClaim 을 사용해 파드의 라이프사이클과 다르게 따로 볼륨만의 사이클을 분리할 수 있습니다. 파드가 제거되고 다시 생성되더라도 기존 볼륨을 사용할 수 있게 됩니다.
Volume Type
1. emptyDir : 임시로 데이터를 저장하는 빈 볼륨
2. gitRepo : 내부적으로 emptyDir 기능을 이용하여, 초기에 Git 레포지토리의 내용을 채워서 제공하는 볼륨
3. hostPath : 쿠버네티스 클러스터 노드의 파일 시스템을 제공하는 볼륨
4. 네트워크 스토리지 볼륨 : cephfs, cinder, fs, flexVolume, flocker, nfs 등
5. 클라우드스토리지 볼륨 : awsEBS, azureDisk, azureFile
6. 특수 유형 볼륨 : configMap, secret
emtpyDir Volume
아무 데이터도 없는 빈 디렉터리를 제공해주는 볼륨입니다. 파드가 생성하는 데이터를 저장할 수 있으며 파드 내의 컨테이너 간에 데이터를 공유할 때 유용하게 사용할 수 있습니다.
emptyDir template
---
apiVersion: v1
kind: Pod
metadata:
name: empty-pod
label
vol: emptyDir
spec:
containers:
- name:
image:
volumeMounts:
- name: <VOL-NAME>
mountPath: <PATH>
volumes:
- name: <VOL-NAME>
emptyDir: {}
pod.spec.volumes. emptyDir
- emptyDir 타입의 볼륨 정의
- {} : 값을 비워두면 호스트의 로컬 디스크를 이용
pod.spec.containers.volumeMounts : 컨테이너 마운트 할 볼륨 선언
pod.spec.containers.volumeMounts.mountPath : 컨테이너 내의 마운트 포인트
gitRepo Volume
EmptyDir 볼륨에 지정한 Git Repogitory의 파일을 채워서 제공해주는 볼륨입니다.
gitRepo template
---
apiVersion: v1
kind: Pod
metadata:
name: gitRepo-pod
label
vol: gitRepo
spec:
containers:
- name:
image:
volumeMounts:
- name: <VOL-NAME>
mountPath: <PATH>
volumes:
- name: <VOL-NAME>
gitRepo:
repository: <GIT-REPO-URL>
revision: <BRANCH>
directory: <PATH>
pod.spec.volumes.gitRepo.repository : Git 저장소의 주소
pod.spec.volumes.gitRepo.revision : Git 저장소의 브랜치
pod.spec.volumes.gitRepo.directory : 저장소의 특정 경로 지정
hostPath Volume
파드가 동작하는 쿠버네티스 클러스터의 노드의 로컬 파일 시스템 및 파일 및 디렉터리를 파드가 사용할 수 있는 볼륨으로 제공해줍니다.
hostPath template
---
apiVersion: v1
kind: Pod
metadata:
name: hostPath-pod
label
vol: hostPath
spec:
containers:
- name:
image:
volumeMounts:
- name: <VOL-NAME>
mountPath: <PATH>
volumes:
- name: <VOL-NAME>
hostPath:
type: <TYPE>
path: <PATH>
pod.spec.volumes.hostPath.type : 볼륨의 종류 지정
- DirectoryOrCreate : 지정된 경로의 디렉터리 사용 ( 없으면 생성 )
- Directory: 지정된 경로의 디렉터리 사용 ( 해당 경로가 존재해야 합니다 )
- FileOrCreate : 지정된 경로의 파일 사용 ( 없으면 생성 )
- File : 지정된 경로의 UNIX 소켓 사용 ( 존재해야 합니다 )
pod.spec.volumes.hostPath.path : 공유할 볼륨의 호스트 경로 지정
'새싹 하이브리드 클라우드 > Kubernetes' 카테고리의 다른 글
Kubernetes - Autoscaling (2) | 2023.11.26 |
---|---|
Kubernetes - PV & PVC (1) | 2023.11.23 |