Compare commits

...

2 Commits

Author SHA1 Message Date
3df7a601b9 Feat: add liveness probe 2025-04-18 23:49:39 +08:00
d39349724a Feat: add k8s(kustomize) support 2025-04-18 23:18:31 +08:00
9 changed files with 185 additions and 0 deletions

36
k8s/deploy.backend.yaml Normal file
View File

@@ -0,0 +1,36 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cnd2025-backend
labels:
app: cnd2025-backend
spec:
replicas: 1
selector:
matchLabels:
app: cnd2025-backend
template:
metadata:
labels:
app: cnd2025-backend
spec:
containers:
- name: backend
image: gitea.konchin.com/ytshih/cnd2025-hw3/backend:latest
ports:
- name: http
containerPort: 8888
env:
- name: PORT
value: '8888'
- name: HOST
value: '0.0.0.0'
- name: MONGO_CONNECTION_STRING
value: 'mongodb://cnd2025-mongo.cnd2025.svc.cluster.local:27017/todo'
livenessProbe:
httpGet:
path: /ping
port: 8888
initialDelaySeconds: 5
periodSeconds: 5

29
k8s/deploy.frontend.yaml Normal file
View File

@@ -0,0 +1,29 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cnd2025-frontend
labels:
app: cnd2025-frontend
spec:
replicas: 1
selector:
matchLabels:
app: cnd2025-frontend
template:
metadata:
labels:
app: cnd2025-frontend
spec:
containers:
- name: frontend
image: gitea.konchin.com/ytshih/cnd2025-hw3/frontend:latest
ports:
- name: http
containerPort: 80
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5

31
k8s/deploy.mongo.yaml Normal file
View File

@@ -0,0 +1,31 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cnd2025-mongo
labels:
app: cnd2025-mongo
spec:
replicas: 1
selector:
matchLabels:
app: cnd2025-mongo
template:
metadata:
labels:
app: cnd2025-mongo
spec:
containers:
- name: mongo
image: docker.io/library/mongo:8.0
ports:
- name: mongo
containerPort: 27017
livenessProbe:
exec:
command:
- mongosh
- --eval
- version()
initialDelaySeconds: 5
periodSeconds: 5

24
k8s/ingress.yaml Normal file
View File

@@ -0,0 +1,24 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: cnd2025
name: cnd2025
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: cnd2025-frontend
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: cnd2025-backend
port:
number: 80

15
k8s/kustomization.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: cnd2025
generatorOptions:
disableNameSuffixHash: true
resources:
- namespace.yaml
- deploy.frontend.yaml
- deploy.backend.yaml
- deploy.mongo.yaml
- svc.frontend.yaml
- svc.backend.yaml
- svc.mongo.yaml
- ingress.yaml

5
k8s/namespace.yaml Normal file
View File

@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: cnd2025

15
k8s/svc.backend.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
apiVersion: v1
kind: Service
metadata:
name: cnd2025-backend
labels:
app: cnd2025-backend
spec:
type: ClusterIP
selector:
app: cnd2025-backend
ports:
- name: http
port: 80
targetPort: 8888

15
k8s/svc.frontend.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
apiVersion: v1
kind: Service
metadata:
name: cnd2025-frontend
labels:
app: cnd2025-frontend
spec:
type: ClusterIP
selector:
app: cnd2025-frontend
ports:
- name: http
port: 80
targetPort: 80

15
k8s/svc.mongo.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
apiVersion: v1
kind: Service
metadata:
name: cnd2025-mongo
labels:
app: cnd2025-mongo
spec:
type: ClusterIP
selector:
app: cnd2025-mongo
ports:
- name: mongo
port: 27017
targetPort: 27017