mirror of
https://github.com/EZ-Api/ez-api.git
synced 2026-01-13 17:47:51 +00:00
101 lines
2.5 KiB
YAML
101 lines
2.5 KiB
YAML
# 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
|