Files
jenkins-pipeline/k8s_yaml/s1/s1-flymoon-payment.yaml

114 lines
4.2 KiB
YAML
Raw Permalink Normal View History

2025-11-13 11:59:04 +08:00
# ----------------------------
# Deployment
# ----------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: s1-flymoon-payment-deployment
namespace: sit
labels:
2025-11-23 09:19:02 +08:00
app: flymoon-payment
2025-11-13 11:59:04 +08:00
environment: s1
project: flymoon
spec:
replicas: 1
selector:
matchLabels:
2025-11-23 09:19:02 +08:00
app: flymoon-payment
2025-11-13 11:59:04 +08:00
environment: s1
project: flymoon
strategy:
type: RollingUpdate # 滚动更新策略
rollingUpdate:
maxSurge: 1 # 最大新增副本数
maxUnavailable: 0 # 最大不可用副本数
template:
metadata:
labels:
2025-11-23 09:19:02 +08:00
app: flymoon-payment
2025-11-13 11:59:04 +08:00
environment: s1
project: flymoon
spec:
imagePullSecrets:
- name: dxin-image-repository # 镜像仓库凭证Secret
volumes:
- name: flymoon-payment-logs-volume
hostPath:
path: /data/logs/flymoon-payment/
type: DirectoryOrCreate
containers:
2025-11-20 14:51:44 +08:00
- name: flymoon-payment # 容器名称
2025-11-23 09:19:02 +08:00
image: uswccr.ccs.tencentyun.com/lessiesit/flymoon-payment:v5_dxin_8a62dbb_202511141657 # 容器镜像
2025-11-13 11:59:04 +08:00
imagePullPolicy: Always # 镜像拉取策略,总是拉取
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: SPRING_PROFILES_ACTIVE
value: "s1"
ports:
- containerPort: 8090 # 容器暴露的端口
resources:
requests:
cpu: "100m" # 容器请求分配0.1个CPU核心这不是实际占用但调度会以这里进行参考
memory: "1Gi" # 容器请求分配1Gi内存这会实际预留
limits:
cpu: "1" # 最多可以使用1个CPU核心
memory: "3Gi" # 容器最多可以使用3Gi内存
volumeMounts:
- name: flymoon-payment-logs-volume
mountPath: /app/logs/
subPathExpr: flymoon-payment-log-$(POD_NAME)
startupProbe: # 启动探针,用于判断容器是否已启动完成
httpGet:
path: /health
port: 8090
initialDelaySeconds: 10 #容器启动后等待多少秒才开始第一次探测
periodSeconds: 10 # 启动探测的间隔秒数,每隔多少秒执行一次探测
failureThreshold: 30
readinessProbe: # 就绪探针,用于判断容器是否已准备好接收流量
httpGet:
path: /health
port: 8090
initialDelaySeconds: 20 # 就绪探测在容器启动后等待多少秒才开始第一次探测(避免应用启动未完成即被判为不就绪)
periodSeconds: 10 # 就绪探测的间隔秒数,每隔多少秒执行一次探测
timeoutSeconds: 5 # 单次就绪探测的超时时间(秒),超过则该次探测视为失败
failureThreshold: 3 # 连续失败多少次后认为就绪探测失败Pod 不再被视为就绪)
livenessProbe: # 存活探针,用于判断容器是否仍然健康,失败会触发重启
httpGet:
path: /health
port: 8090
initialDelaySeconds: 10 # 存活探测在容器启动后等待多少秒才开始第一次探测
periodSeconds: 30 # 存活探测的间隔秒数
timeoutSeconds: 5 # 单次存活探测的超时时间(秒)
failureThreshold: 3 # 连续失败多少次后认为容器不健康并触发重启
---
# ----------------------------
# Service
# 集群内部http://s1-flymoon-payment-svc.sit.svc.cluster.local:8090
# 集群外部http://<Node-IP>:30809
# ----------------------------
apiVersion: v1
kind: Service
metadata:
name: s1-flymoon-payment-svc
namespace: sit
labels:
2025-11-23 09:19:02 +08:00
app: flymoon-payment
2025-11-13 11:59:04 +08:00
environment: s1
project: flymoon
spec:
type: ClusterIP
selector: # 必须匹配 Deployment 的 labels 才能关联 Pod
2025-11-23 09:19:02 +08:00
app: flymoon-payment
2025-11-13 11:59:04 +08:00
environment: s1
project: flymoon
ports:
- name: http
port: 8090 # ClusterIP 内部端口
targetPort: 8090 # 容器端口