스프링 부트 어플리케이션 내에서 할 과제
내가 더 하고 싶은거
Kubernetes 클러스터 내에서 할 과제
apiVersion: batch/v1
kind: CronJob
metadata:
name: actuator-check-job
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: actuator-check-container
image: gkfn185/k8s-project:1.4
command: ["curl", "-s", "<http://k8s-project-service:40003/actuator>"]
successfulJobsHistoryLimit: 10
failedJobsHistoryLimit: 10
vi redis-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-deployment
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
volumeMounts:
- name: redis-data
mountPath: /data
volumes:
- name: reids-data # volumes의 name과 volumeMounts의 name을 일치 시켜야함
persistentVolumeClaim:
claimName: redis-pvc # pvc 이름을 이용하여 참조
kubectl apply -f redis-deployment.yaml
vi redis-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-service
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379
vi redis-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: redis-storage
nfs:
server: 192.168.219.102
path: /home/gkfn185/redis
kubectl apply -f redis-pv.yaml
vi redis-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: redis-storage
resources:
requests:
storage: 5Gi
kubectl apply -f redis-pvc.yaml
kubectl apply -f redis-pv.yaml
kubectl apply -f redis-pvc.yaml
kubectl apply -f redis-deployment.yaml
kubectl delete deployment redis-deployment
kubectl delete pvc redis-pvc
kubectl delete pv redis-pv
spring.redis.host=redis-service
spring.redis.port=6379