728x90
반응형
VOLUME
- 파드 내의 모든 컨테이너가 접근 가능한 디렉토리
- 컨테이너에서 스토리지(storage)를 분리시켜 컨테이너 재시작/재스케쥴과 별개로 데이터를 영속 관리 가능하게 함
apiVersion: v1
kind: Pod
metadata:
name: webapp-with-db
labels:
app: my-webapp
spec:
containers:
- name: webapp
image: nginx:latest
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: webapp-config
- name: database
image: mongo:latest
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
volumeMounts:
- name: db-data
mountPath: /data/db // 데이터 볼륨을 /data/db 마운트한다
volumes:
- name: db-data // db-data 볼륨에 영구히 저장된다
persistentVolumeClaim:
claimName: database-pvc
---
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
selector:
app: my-webapp
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: v1
kind: ConfigMap
metadata:
name: webapp-config
data:
WEBAPP_ENV: "production"
DATABASE_URL: "mongodb://database-service:27017/mydb"
---
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: <base64-encoded-username>
password: <base64-encoded-password>
---
apiVersion: v1
kind: PersistentVolumeClaim // PVC - 스토리지 요구사항 정의
metadata:
name: database-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi // 스토리지 요구사항 상세. 1Gi 짜리 스토리지
728x90
반응형
'데브옵스 devOps > Kubernetes' 카테고리의 다른 글
[k8s] 쿠버네티스에서 Deployment란? (0) | 2024.11.21 |
---|---|
[k8s] 쿠버네티스에서 Secrets란? (1) | 2024.11.19 |
[k8s] 쿠버네티스에서 Config Map이란? (0) | 2024.11.18 |
[k8s] 쿠버네티스에서 Service 란? (0) | 2024.11.15 |
[k8s] 메인 컴포넌트들 (1) | 2024.11.14 |