Files
ez-api/test/k8s/log-postgres.yaml
2025-12-24 11:49:34 +08:00

113 lines
3.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Log PostgreSQL StatefulSet for log database
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: log-postgres
namespace: ez-api-test-dev
labels:
app.kubernetes.io/name: ez-api-test-dev
app.kubernetes.io/component: log-postgres
spec:
serviceName: log-postgres
replicas: 1
selector:
matchLabels:
app: log-postgres
# 有状态服务使用 OrderedReady 策略,确保按顺序部署和终止
podManagementPolicy: OrderedReady
# 使用 RollingUpdate 策略partition=0 表示全部更新
updateStrategy:
type: RollingUpdate
rollingUpdate:
partition: 0
template:
metadata:
labels:
app: log-postgres
app.kubernetes.io/name: ez-api-test-dev
app.kubernetes.io/component: log-postgres
spec:
terminationGracePeriodSeconds: 30
containers:
- name: log-postgres
image: postgres:15-alpine
ports:
- containerPort: 5432
name: postgres
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: ez-api-secrets
key: LOG_POSTGRES_USER
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: ez-api-secrets
key: LOG_POSTGRES_PASSWORD
- name: POSTGRES_DB
valueFrom:
configMapKeyRef:
name: ez-api-config
key: LOG_POSTGRES_DB
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
volumeMounts:
- name: log-postgres-data
mountPath: /var/lib/postgresql/data
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "1Gi"
cpu: "500m"
livenessProbe:
exec:
command:
- pg_isready
- -U
- postgres
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
readinessProbe:
exec:
command:
- pg_isready
- -U
- postgres
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 5
failureThreshold: 3
volumeClaimTemplates:
- metadata:
name: log-postgres-data
spec:
accessModes: ["ReadWriteOnce"]
# 根据集群配置修改 storageClassName
# storageClassName: "standard"
resources:
requests:
storage: 100Gi # 日志数据库需要更多存储空间
---
# Log PostgreSQL Service (Headless for StatefulSet)
apiVersion: v1
kind: Service
metadata:
name: log-postgres
namespace: ez-api-test-dev
labels:
app.kubernetes.io/name: ez-api-test-dev
app.kubernetes.io/component: log-postgres
spec:
ports:
- port: 5432
targetPort: 5432
name: postgres
clusterIP: None # Headless service for StatefulSet
selector:
app: log-postgres