Files
blog/k8s/backend/deployment.yaml
T
zhaoxi 0efb2bffbd chore(k8s): 适配生产部署
- ingress 只暴露 /api(前端静态文件由外部 Caddy 托管)
- deployment 填入正式域名 blog.zhaoxi.net.cn
- 真实 secret 移出 git 跟踪,改用 secret.example.yaml 模板
2026-07-18 21:45:11 +08:00

106 lines
3.0 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
namespace: blog
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
initContainers:
- name: wait-for-postgres
image: busybox:1.36
command:
- sh
- -c
- |
until nc -z postgres 5432; do
echo "waiting for postgres..."
sleep 2
done
containers:
- name: backend
image: blog-backend:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: backend-secret
key: database-url
- name: JWT_SECRET
valueFrom:
secretKeyRef:
name: backend-secret
key: jwt-secret
- name: GITHUB_CLIENT_ID
valueFrom:
secretKeyRef:
name: backend-secret
key: github-client-id
- name: GITHUB_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: backend-secret
key: github-client-secret
- name: GITHUB_ADMIN_ID
valueFrom:
secretKeyRef:
name: backend-secret
key: github-admin-id
- name: APP_URL
value: "https://blog.zhaoxi.net.cn"
- name: FRONTEND_URL
value: "https://blog.zhaoxi.net.cn"
# MOCK_OAUTH 生产环境绝不开启,缺省即关闭
- name: S3_ENDPOINT
valueFrom:
secretKeyRef:
name: backend-secret
key: s3-endpoint
- name: S3_REGION
valueFrom:
secretKeyRef:
name: backend-secret
key: s3-region
- name: S3_BUCKET
valueFrom:
secretKeyRef:
name: backend-secret
key: s3-bucket
- name: S3_ACCESS_KEY
valueFrom:
secretKeyRef:
name: backend-secret
key: s3-access-key
- name: S3_SECRET_KEY
valueFrom:
secretKeyRef:
name: backend-secret
key: s3-secret-key
- name: S3_PUBLIC_URL
valueFrom:
secretKeyRef:
name: backend-secret
key: s3-public-url
readinessProbe:
httpGet:
path: /api/health
port: 3000
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /api/health
port: 3000
initialDelaySeconds: 15
periodSeconds: 20