feat: 添加kubernetes部署

This commit is contained in:
2025-12-24 11:49:34 +08:00
parent b97705532e
commit 7f160a8d2a
11 changed files with 958 additions and 2 deletions

100
test/k8s/redis.yaml Normal file
View File

@@ -0,0 +1,100 @@
# Redis StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis
namespace: ez-api-test-dev
labels:
app.kubernetes.io/name: ez-api-test-dev
app.kubernetes.io/component: redis
spec:
serviceName: redis
replicas: 1
selector:
matchLabels:
app: redis
# 有状态服务使用 OrderedReady 策略
podManagementPolicy: OrderedReady
# Redis 更新策略:使用 RollingUpdate但设置 partition=0 表示全部更新
# 如果需要金丝雀发布,可以将 partition 设置为大于 0 的值
updateStrategy:
type: RollingUpdate
rollingUpdate:
partition: 0
template:
metadata:
labels:
app: redis
app.kubernetes.io/name: ez-api-test-dev
app.kubernetes.io/component: redis
spec:
terminationGracePeriodSeconds: 30
containers:
- name: redis
image: redis:7-alpine
command:
- redis-server
- --appendonly
- "yes"
- --save
- "60"
- "1"
ports:
- containerPort: 6379
name: redis
volumeMounts:
- name: redis-data
mountPath: /data
resources:
requests:
memory: "128Mi"
cpu: "50m"
limits:
memory: "512Mi"
cpu: "250m"
livenessProbe:
exec:
command:
- redis-cli
- ping
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
readinessProbe:
exec:
command:
- redis-cli
- ping
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 5
failureThreshold: 3
volumeClaimTemplates:
- metadata:
name: redis-data
spec:
accessModes: ["ReadWriteOnce"]
# 根据集群配置修改 storageClassName
# storageClassName: "standard"
resources:
requests:
storage: 10Gi
---
# Redis Service (Headless for StatefulSet)
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: ez-api-test-dev
labels:
app.kubernetes.io/name: ez-api-test-dev
app.kubernetes.io/component: redis
spec:
ports:
- port: 6379
targetPort: 6379
name: redis
clusterIP: None # Headless service for StatefulSet
selector:
app: redis