생성되어있던 StorageClass에 pvc 생성 연결.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ptkorea-pv-claim
spec:
storageClassName: gp2
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ptkorea-backend
name: ptkorea-backend
spec:
replicas: 1
selector:
matchLabels:
app: ptkorea-backend
template:
metadata:
labels:
app: ptkorea-backend
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/actuator/prometheus'
prometheus.io/port: '8089'
spec:
containers:
- name: ptkorea-backend
image: 595763884011.dkr.ecr.ap-northeast-2.amazonaws.com/ptkorea-backend:dev
imagePullPolicy: Always
resources:
requests:
memory: "128Mi"
cpu: "125m"
limits:
memory: "1Gi"
cpu: "1"
livenessProbe:
httpGet:
path: /actuator/health/liveness
port: 8089
initialDelaySeconds: 30
failureThreshold: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: 8089
initialDelaySeconds: 30
failureThreshold: 30
periodSeconds: 10
env:
- name: JAVA_TOOL_OPTIONS
value: '-Xms128m -Xmx512m'
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: MY_POD_SERVICE_ACCOUNT
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
- name: MY_CPU_REQUEST
valueFrom:
resourceFieldRef:
containerName: ptkorea-backend
resource: requests.cpu
- name: MY_CPU_LIMIT
valueFrom:
resourceFieldRef:
containerName: ptkorea-backend
resource: limits.cpu
- name: MY_MEM_REQUEST
valueFrom:
resourceFieldRef:
containerName: ptkorea-backend
resource: requests.memory
- name: MY_MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: ptkorea-backend
resource: limits.memory
- name: TZ
value: Asia/Seoul
volumeMounts:
- name: tz-config
mountPath: /etc/localtime
- mountPath: /sourcefiles
name: ptkorea-pv-storage
- name: ptkorea-module
image: 595763884011.dkr.ecr.ap-northeast-2.amazonaws.com/ptkorea-module:dev
imagePullPolicy: Always
ports:
- containerPort: 5000
resources:
requests:
memory: "256Mi"
limits:
memory: "512Mi"
volumeMounts:
- mountPath: /usr/src/app/files
name: ptkorea-pv-storage
volumes:
- name: tz-config
hostPath:
path: /usr/share/zoneinfo/Asia/Seoul
- name: ptkorea-pv-storage
persistentVolumeClaim:
claimName: ptkorea-pv-claim
예제
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: slow # 특정 이름 지정
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
fsType: ext4
reclaimPolicy: Retain
mountOptions:
- debug
volumeBindingMode: Immediate
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: wordpress
name: pvc-1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: slow