deployment.yaml 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: <service_name><service_version>
  5. namespace: ahxpm
  6. spec:
  7. strategy:
  8. type: RollingUpdate
  9. rollingUpdate:
  10. maxSurge: 1 # 每次只新增 1 个 Pod(逐步替换)
  11. maxUnavailable: 0 # 确保任何时刻所有 Pod 都可用
  12. minReadySeconds: 60 # 新 Pod Ready 后至少保持 60 秒才认为更新完成
  13. selector:
  14. matchLabels:
  15. app: <service_name><service_version>
  16. template:
  17. metadata:
  18. labels:
  19. app: <service_name><service_version>
  20. annotations:
  21. commit-sha: "<COMMIT_SHA>"
  22. spec:
  23. imagePullSecrets:
  24. - name: <imagePullSecret>
  25. containers:
  26. - name: <service_name>
  27. image: <docker_image>
  28. command: ["java"]
  29. args: <java_args>
  30. readinessProbe:
  31. httpGet:
  32. path: <service_health>
  33. port: 80
  34. initialDelaySeconds: 15
  35. periodSeconds: 30
  36. failureThreshold: 3
  37. ports:
  38. - name: http
  39. containerPort: 80
  40. envFrom:
  41. - configMapRef:
  42. name: <configmap_env_name>