일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kotlin spring
- 오블완
- kotlin
- kotlin coroutine
- aws
- APM
- 코틀린 코루틴의 정석
- 정보처리기사실기 기출문제
- kotlin querydsl
- 정보처리기사 실기
- 공부
- 정보처리기사 실기 기출문제
- mysql 튜닝
- 티스토리챌린지
- PETERICA
- Elasticsearch
- AWS EKS
- Spring
- CKA 기출문제
- Java
- MySQL
- Pinpoint
- IntelliJ
- AI
- 기록으로 실력을 쌓자
- Linux
- CKA
- CloudWatch
- Kubernetes
- minikube
- Today
- Total
피터의 개발이야기
[CKA] Udemy 실습문제풀이 - Storage 본문
ㅁ 들어가며
ㅇ Udemy강의를 시청하고 Practice Test를 중심으로 Storage에 대해 공부한 내용을 정리하였다.
ㅁ 관련 글
ㅇ [AWS] Amazon EBS 볼륨 증설 및 kubenetes PV, PVC 볼륨 수정 과정 정리
ㄴ AWS EBS- PV -PVC와 연계하여 AWS EBS를 증설하고 PVC의 storage capacity를 수정하는 과정을 정리함.
ㄴ [AWS] Amazon EBS gp2 vs gp3 비교 볼륨을 증설하는 이유를 알기 위해 정리한 글 이후 아래의 글에서 gp3로 변경함
ㅇ[EBS] EKS 생성, MongoDB 구성, gp2에서 gp3 EBS 볼륨으로 마이그레이션
ㄴ gp2는 용량에 따라 IOPS를 증설할 수 있다. 하지만 최대 IOPS가 필요한 상황이라 gp3로 변경작업 수행함.
ㅇ [Kubernetes] 쿠버네티스 볼륨 개념 1편 (emptryDir, hostPath)
ㅇ [Kubernetes] 쿠버네티스 볼륨 개념 2편 (pv, pvc, AWS EBS, AWS EFS )
ㄴ 볼륨에 대한 개념을 공부하고 정리한 내용이다.
ㅁ Practice Test Persistent Volume Claims
ㅇ hostpath
ㄴ hostPath 볼륨은 호스트 노드의 파일시스템에 있는 파일이나 디렉터리를 파드에 마운트 한다.
ㄴ 멀티 컨테이너 - Sidecar 패턴으로 메인 컨테이너의 log를 정리하는 Sidecar 컨테이너에 사용하는 방법이다.
ㄴ 같은 파드의 컨테이너는 hostpath를 마치 nas처럼 공유할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: webapp
spec:
containers:
- name: event-simulator
image: kodekloud/event-simulator
env:
- name: LOG_HANDLERS
value: file
volumeMounts:
- mountPath: /log
name: log-volume
volumes:
- name: log-volume
hostPath:
# directory location on host
path: /var/log/webapp
# this field is optional
type: Directory
# pv.yaml 작성
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-log
spec:
persistentVolumeReclaimPolicy: Retain
accessModes:
- ReadWriteMany
capacity:
storage: 100Mi
hostPath:
path: /pv/log
ㅇ Create a PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: claim-log-1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Mi
ㅇ pvc update
# accessModes update
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: claim-log-1
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Mi
apiVersion: v1
kind: Pod
metadata:
name: webapp
spec:
containers:
- name: event-simulator
image: kodekloud/event-simulator
env:
- name: LOG_HANDLERS
value: file
volumeMounts:
- mountPath: /log
name: log-volume
volumes:
- name: log-volume
persistentVolumeClaim:
claimName: claim-log-1
ㅇ storage의 용량 설정은 pv > pvc이다.
ㄴ 필요한 용량이 10GB라고 해서 32GB USB를 쪼갤 수 없다.
ㅇ Retain 반환 정책은 삭제를 하지 않고 남아 있지만 다른 곳에서 사용할 수 없다. 나중에 수동으로 반환처리를 해야함.
ㅇ pvc를 삭제를 하였도 pod에서 사용하고 있으면 터미네이트 상태, pod를 삭제하면 pvc도 삭제된다.
ㅁ Storage Class
ㅇ dynamic volume provisioning?
ㄴ Local
ㄴ 동적 상태
- "provisioner": "rancher.io/local-path"
- "provisioner": "kubernetes.io/portworx-volume"
ㄴ 비동적 상태
- "provisioner": "kubernetes.io/no-provisioner"
ㅇ 스토리지 클래스의 WaitForFirstConsumer
local-storage라는 스토리지 클래스는 WaitForFirstConsumer로 설정된 VolumeBindingMode를 사용합니다. 이렇게 하면 PertantVolumeClaim을 사용하는 포드가 생성될 때까지 PertantVolume의 바인딩 및 프로비저닝이 지연됩니다.
ㅇ pod 생성
---
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
volumeMounts:
- name: local-persistent-storage
mountPath: /var/www/html
volumes:
- name: local-persistent-storage
persistentVolumeClaim:
claimName: local-pvc
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: delayed-volume-sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
'Kubernetes > CKA&CKAD' 카테고리의 다른 글
[kubernetes] JSONPath 사용법 (1) | 2024.01.27 |
---|---|
[CKA] Udemy 실습문제풀이 - Networking (0) | 2024.01.27 |
[CKA] Udemy 실습문제풀이 - Security (0) | 2024.01.25 |
[CKA] Udemy 실습문제풀이 - Cluster Maintenance (0) | 2024.01.25 |
[CKA] Udemy 실습문제풀이 - Application Lifecycle Management (0) | 2024.01.25 |