apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
namespace: prod
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 50% # 允許 50% 的 Pod 同時不可用, 注意:若設定100%會讓服務停止
maxSurge: 100% # 允許額外創建 ? % 的 Pod
# selector 和 template/metadata 是綁定關係
# 用於確保所設定的 min / max 是否符合配置
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
# 添加 imagePullSecrets 用于私有仓库认证
imagePullSecrets:
- name: xxx-registry-secret
containers:
- name: backend
image: xxx/california/php:0.142.1-prod
imagePullPolicy: Always
workingDir: /app
# 設置pod能使用的效能
resources:
limits:
cpu: "2000m"
memory: "4096Mi"
requests:
cpu: "500m"
memory: "200Mi"
envFrom:
- configMapRef:
name: php.env
volumeMounts:
- name: filenas-volume
mountPath: /app/http/static
volumes:
- name: filenas-volume
nfs:
server: xxx.com
path: /xxx-xxx
readOnly: false