This commit is contained in:
dxin
2025-11-13 11:59:04 +08:00
parent 1298fdd1e8
commit a7c7be8452
17 changed files with 1856 additions and 235 deletions

View File

@@ -0,0 +1,44 @@
apiVersion: cloud.tencent.com/v1alpha1
kind: TkeServiceConfig
metadata:
name: jetty-ingress-config
namespace: sit
spec:
loadBalancer:
l7Listeners:
- protocol: HTTP
port: 80
snatEnable: false # 监听器透传客户端源 IP非 snat 白名单用户,请勿声明该字段)。当 snatEnable 为 true 时,关闭透传客户端源 IP 选项。当 snatEnable 为 false 时,打开透传客户端源 IP 选项。当设置 keepaliveEnable 为 1 时snatEnable 不能为 false。
domains:
- domain: "" # domain为空表示使用VIP作为域名
rules:
- url: "/health"
forwardType: HTTP # 指定后端协议为 HTTP目前支持 HTTP/HTTPS/GRPC。
healthCheck:
enable: false
- protocol: HTTPS
port: 443
defaultServer: "sample.tencent.com" # 默认域名
keepaliveEnable: 1 # 监听器开启长连接(非 keepalive 白名单用户,请勿声明该字段)
domains:
- domain: "sample.tencent.com"
http2: true # 启用 HTTP 2.0
rules:
- url: "/"
forwardType: HTTPS # 指定后端协议为 HTTPS目前支持 HTTP/HTTPS/GRPC。
session:
enable: true
sessionExpireTime: 3600
healthCheck:
enable: true
intervalTime: 10 # intervalTime 要大于 timeout否则会出错
timeout: 5 # timeout 要小于 intervalTime否则会出错
healthNum: 2
unHealthNum: 2
httpCheckPath: "/checkHealth"
httpCheckDomain: "sample.tencent.com" #注意:健康检查必须使用固定域名进行探测,如果您在.spec.loadBalancer.l7Listeners.protocol.domains.domain 里填写的是泛域名,一定要使用 httpCheckDomain 字段明确具体需要健康检查的域名,否则泛域名不支持健康检查。
httpCheckMethod: HEAD
httpCode: 31 # 可选值1~31默认 31。 1 表示探测后返回值 1xx 代表健康2 表示返回 2xx 代表健康4 表示返回 3xx 代表健康8 表示返回 4xx 代表健康16 表示返回 5xx 代表健康。若希望多种返回码都可代表健康,则将相应的值相加。
sourceIpType: 0 # 可选值0或1设定健康检查源ip。0 表示负载均衡VIP1 表示 100.64.0.0/10 网段ip。对于域名化clb默认值为1且只能为1对于非域名化的clb默认值不一定可在clb控制台配置页面看能否看到VIP探测方式如能看到默认值为0否则为1更多详情查看 https://cloud.tencent.com/document/product/214/86666。
checkType: "HTTPS" # 可选值HTTPHTTPSTCP 或 GRPC默认 HTTP。2024.06之后新建的集群支持改字段,存量集群如有需要可提工单升级后台组件来支持。当 forwardType 为 HTTPS 时checkType 只能为 TCP 或 HTTPS。当 forwardType 为 GRPC 时checkType 只能为 TCP 或 GRPC。
scheduler: WRR # 可选值WRR、LEAST_CONN、IP_HASH

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Pod
metadata:
name: network-test-pod
namespace: lessie-sit
namespace: sit
labels:
app: network-test
spec:
@@ -25,7 +25,7 @@ apiVersion: v1
kind: Service
metadata:
name: network-test-pod-svc
namespace: test-lessie
namespace: sit
labels:
app: network-test
spec:

View File

@@ -5,7 +5,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: s1-flymoon-admin-deployment
namespace: test-lessie
namespace: sit
labels:
app: s1-flymoon-admin
environment: s1
@@ -38,7 +38,7 @@ spec:
type: DirectoryOrCreate
containers:
- name: s1-flymoon-admin # 容器名称
image: uswccr.ccs.tencentyun.com/lessiesit/flymoon-admin:v0.0.1 # 容器镜像
image: uswccr.ccs.tencentyun.com/lessiesit/flymoon-admin:v1_dxin_467169b_202511101605 # 容器镜像
imagePullPolicy: Always # 镜像拉取策略 拉
env:
- name: POD_NAME
@@ -60,25 +60,48 @@ spec:
- name: flymoon-admin-logs-volume
mountPath: /app/logs/
subPathExpr: flymoon-admin-log-$(POD_NAME)
startupProbe: # 启动探针,用于判断容器是否已启动完成
httpGet:
path: /sit-api/health
port: 8080
initialDelaySeconds: 10 #容器启动后等待多少秒才开始第一次探测
periodSeconds: 10 # 启动探测的间隔秒数,每隔多少秒执行一次探测
failureThreshold: 30
readinessProbe: # 就绪探针,用于判断容器是否已准备好接收流量
httpGet:
path: /sit-api/health
port: 8080
initialDelaySeconds: 20 # 就绪探测在容器启动后等待多少秒才开始第一次探测(避免应用启动未完成即被判为不就绪)
periodSeconds: 10 # 就绪探测的间隔秒数,每隔多少秒执行一次探测
timeoutSeconds: 5 # 单次就绪探测的超时时间(秒),超过则该次探测视为失败
failureThreshold: 3 # 连续失败多少次后认为就绪探测失败Pod 不再被视为就绪)
livenessProbe: # 存活探针,用于判断容器是否仍然健康,失败会触发重启
httpGet:
path: /sit-api/health
port: 8080
initialDelaySeconds: 10 # 存活探测在容器启动后等待多少秒才开始第一次探测
periodSeconds: 30 # 存活探测的间隔秒数
timeoutSeconds: 5 # 单次存活探测的超时时间(秒)
failureThreshold: 3 # 连续失败多少次后认为容器不健康并触发重启
---
# ----------------------------
# Service
# 集群内部http://s1-flymoon-admin-svc.s1-lessie.svc.cluster.local:8080
# 集群外部http://<Node-IP>:30808
# 集群内部http://s1-flymoon-admin-svc.sit.svc.cluster.local:8080
# ----------------------------
apiVersion: v1
kind: Service
metadata:
name: s1-flymoon-admin-svc
namespace: test-lessie
namespace: sit
labels:
app: s1-flymoon-admin
environment: s1
project: flymoon
spec:
type: NodePort
type: ClusterIP
selector: # 必须匹配 Deployment 的 labels 才能关联 Pod
app: s1-flymoon-admin
environment: s1
@@ -87,5 +110,4 @@ spec:
- name: http
port: 8080 # ClusterIP 内部端口
targetPort: 8080 # 容器端口
nodePort: 30808 # 节点对外端口(30000-32767)

View File

@@ -4,18 +4,18 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-flymoon-agent-deployment
namespace: test-lessie
name: s1-flymoon-agent-deployment
namespace: sit
labels:
app: test-flymoon-agent
environment: test
app: s1-flymoon-agent
environment: s1
project: flymoon
spec:
replicas: 1
selector:
matchLabels:
app: test-flymoon-agent
environment: test
app: s1-flymoon-agent
environment: s1
project: flymoon
strategy:
type: RollingUpdate # 滚动更新策略
@@ -25,8 +25,8 @@ spec:
template:
metadata:
labels:
app: test-flymoon-agent
environment: test
app: s1-flymoon-agent
environment: s1
project: flymoon
spec:
imagePullSecrets:
@@ -37,8 +37,8 @@ spec:
path: /data/logs/flymoon-agent/
type: DirectoryOrCreate
containers:
- name: test-flymoon-agent # 容器名称
image: uswccr.ccs.tencentyun.com/lessietest/flymoon-agent:v0.0.5 # 容器镜像
- name: s1-flymoon-agent # 容器名称
image: uswccr.ccs.tencentyun.com/lessiesit/flymoon-agent:v0.0.5 # 容器镜像
imagePullPolicy: Always # 镜像拉取策略,拉
env:
- name: POD_NAME
@@ -55,37 +55,52 @@ spec:
memory: "1Gi" # 容器请求分配1Gi内存这会实际预留
limits:
cpu: "1" # 最多可以使用1个CPU核心
memory: "3Gi" # 容器最多可以使用3Gi内存
memory: "4Gi" # 容器最多可以使用3Gi内存
volumeMounts:
- name: flymoon-agent-logs-volume
mountPath: /app/logs/
subPathExpr: flymoon-agent-log-$(POD_NAME)
readinessProbe: # 就绪探针,用于判断容器是否已准备好接收流量
httpGet:
path: /sit-api/health
port: 8070
initialDelaySeconds: 20 # 就绪探测在容器启动后等待多少秒才开始第一次探测(避免应用启动未完成即被判为不就绪)
periodSeconds: 10 # 就绪探测的间隔秒数,每隔多少秒执行一次探测
timeoutSeconds: 5 # 单次就绪探测的超时时间(秒),超过则该次探测视为失败
failureThreshold: 3 # 连续失败多少次后认为就绪探测失败Pod 不再被视为就绪)
livenessProbe: # 存活探针,用于判断容器是否仍然健康,失败会触发重启
httpGet:
path: /sit-api/health
port: 8070
initialDelaySeconds: 10 # 存活探测在容器启动后等待多少秒才开始第一次探测
periodSeconds: 30 # 存活探测的间隔秒数
timeoutSeconds: 5 # 单次存活探测的超时时间(秒)
failureThreshold: 3 # 连续失败多少次后认为容器不健康并触发重启
---
# ----------------------------
# Service
# 集群内部http://test-flymoon-agent-svc.test-lessie.svc.cluster.local:8070
# 集群外部http://<Node-IP>:30807
# 集群内部http://s1-flymoon-agent-svc.sit.svc.cluster.local:8070
# ----------------------------
apiVersion: v1
kind: Service
metadata:
name: test-flymoon-agent-svc
namespace: test-lessie
name: s1-flymoon-agent-svc
namespace: sit
labels:
app: test-flymoon-agent
environment: test
app: s1-flymoon-agent
environment: s1
project: flymoon
spec:
type: NodePort
type: ClusterIP
selector: # 必须匹配 Deployment 的 labels 才能关联 Pod
app: test-flymoon-agent
environment: test
app: s1-flymoon-agent
environment: s1
project: flymoon
ports:
- name: http
port: 8070 # ClusterIP 内部端口
targetPort: 8070 # 容器端口
nodePort: 30807 # 节点对外端口(30000-32767)

View File

@@ -0,0 +1,113 @@
# ----------------------------
# Deployment
# ----------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: s1-flymoon-payment-deployment
namespace: sit
labels:
app: s1-flymoon-payment
environment: s1
project: flymoon
spec:
replicas: 1
selector:
matchLabels:
app: s1-flymoon-payment
environment: s1
project: flymoon
strategy:
type: RollingUpdate # 滚动更新策略
rollingUpdate:
maxSurge: 1 # 最大新增副本数
maxUnavailable: 0 # 最大不可用副本数
template:
metadata:
labels:
app: s1-flymoon-payment
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:
- name: s1-flymoon-payment # 容器名称
image: uswccr.ccs.tencentyun.com/lessiesit/flymoon-payment:v2_dxin_d408919_202511121501 # 容器镜像
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:
app: s1-flymoon-payment
environment: s1
project: flymoon
spec:
type: ClusterIP
selector: # 必须匹配 Deployment 的 labels 才能关联 Pod
app: s1-flymoon-payment
environment: s1
project: flymoon
ports:
- name: http
port: 8090 # ClusterIP 内部端口
targetPort: 8090 # 容器端口

View File

@@ -4,18 +4,18 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-lessie-ai-web-deployment
namespace: test-lessie
name: s1-lessie-ai-web-deployment
namespace: sit
labels:
app: test-lessie-ai-web
environment: test
app: s1-lessie-ai-web
environment: s1
project: lessie
spec:
replicas: 1
selector:
matchLabels:
app: test-lessie-ai-web
environment: test
app: s1-lessie-ai-web
environment: s1
project: lessie
strategy:
type: RollingUpdate # 滚动更新策略
@@ -25,18 +25,18 @@ spec:
template:
metadata:
labels:
app: test-lessie-ai-web
environment: test
app: s1-lessie-ai-web
environment: s1
project: lessie
spec:
imagePullSecrets:
- name: dxin-image-repository
volumes:
- name: test-default-conf-volume
- name: s1-default-conf-volume
configMap:
name: test-default-conf
name: default-conf
containers:
- name: test-lessie-ai-web
- name: s1-lessie-ai-web
image: uswccr.ccs.tencentyun.com/lessiesit/lessie-ai-web:latest
imagePullPolicy: Always
ports:
@@ -49,33 +49,31 @@ spec:
cpu: "500m" # 最多可以使用0.5个CPU核心
memory: "512Mi" # 容器最多可以使用8Gi内存
volumeMounts:
- name: test-default-conf-volume
- name: s1-default-conf-volume
mountPath: /etc/nginx/conf.d/default.conf
subPath: default.conf
---
# ----------------------------
# Service
# 集群内部http://test-lessie-ai-web-svc.test-lessie.svc.cluster.local:8000
# 集群外部http://<Node_IP>:30080
# 集群内部http://s1-lessie-ai-web-svc.sit.svc.cluster.local:8000
# ----------------------------
apiVersion: v1
kind: Service
metadata:
name: test-lessie-ai-web-svc
namespace: test-lessie
name: s1-lessie-ai-web-svc
namespace: sit
labels:
app: test-lessie-ai-web
environment: test
app: s1-lessie-ai-web
environment: s1
project: lessie
spec:
type: NodePort
type: ClusterIP
selector:
app: test-lessie-ai-web
environment: test
app: s1-lessie-ai-web
environment: s1
project: lessie
ports:
- name: http
port: 80
targetPort: 80
nodePort: 30080
targetPort: 80

View File

@@ -0,0 +1,185 @@
apiVersion: cloud.tencent.com/v1alpha1
kind: TkeServiceConfig
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"cloud.tencent.com/v1alpha1","kind":"TkeServiceConfig","metadata":{"annotations":{},"creationTimestamp":"2025-11-10T10:30:17Z","generation":4,"name":"sit-ingress-auto-ingress-config","namespace":"sit","resourceVersion":"2206754346","uid":"a64d0729-c7b3-416d-8eab-921eaa9c6c9d"},"spec":{"loadBalancer":{"l7Listeners":[{"defaultServer":"test.jennie.im","domains":[{"domain":"test.jennie.im","http2":true,"rules":[{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"GET","httpCheckPath":"/health","httpCode":31,"intervalTime":10,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/api/"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/api/chat"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/api/conversation"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/api/searches"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/api/shares"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/api/showcases"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/prod-api/agent/"},{"forwardType":"HTTP","healthCheck":{"checkType":"HTTP","enable":true,"extendedCode":"","healthNum":3,"httpCheckDomain":"test.jennie.im","httpCheckMethod":"HEAD","httpCheckPath":"/","httpCode":31,"intervalTime":5,"sourceIpType":1,"timeout":2,"unHealthNum":3},"scheduler":"WRR","session":{"enable":false},"url":"/prod-api/system"}]}],"keepaliveEnable":0,"port":443,"protocol":"HTTPS"}]}}}
creationTimestamp: "2025-11-10T10:30:17Z"
generation: 5
name: sit-ingress-auto-ingress-config
namespace: sit
resourceVersion: "2206893793"
uid: a64d0729-c7b3-416d-8eab-921eaa9c6c9d
spec:
loadBalancer:
l7Listeners:
- defaultServer: test.jennie.im
domains:
- domain: test.jennie.im
http2: true
rules:
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: HEAD
httpCheckPath: /
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /health
httpCode: 31
intervalTime: 10
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /api/
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /api/chat
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /api/conversation
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /api/searches
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /api/shares
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /api/showcases
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /sit-api/health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /prod-api/agent/
- forwardType: HTTP
healthCheck:
checkType: HTTP
enable: true
extendedCode: ""
healthNum: 3
httpCheckDomain: test.jennie.im
httpCheckMethod: GET
httpCheckPath: /sit-api/health
httpCode: 31
intervalTime: 5
sourceIpType: 1
timeout: 2
unHealthNum: 3
scheduler: WRR
session:
enable: false
url: /prod-api/system
keepaliveEnable: 0
port: 443
protocol: HTTPS

View File

@@ -0,0 +1,179 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
ingress.cloud.tencent.com/client-token: dc603203-6dcd-4f15-8357-a9bf648c70a3
ingress.cloud.tencent.com/direct-access: "true"
ingress.cloud.tencent.com/status.conditions: '[{"type":"Ready","status":"True","lastTransitionTime":"2025-11-12T07:56:00Z","reason":"Success","message":""}]'
ingress.cloud.tencent.com/tke-service-config-auto: "true"
kubernetes.io/ingress.class: qcloud
kubernetes.io/ingress.extensiveParameters: '{"AddressIPVersion":"IPV4","InternetAccessible":{"InternetChargeType":"TRAFFIC_POSTPAID_BY_HOUR","InternetMaxBandwidthOut":100}}'
kubernetes.io/ingress.http-rules: "null"
kubernetes.io/ingress.https-rules: '[{"host":"test.jennie.im","path":"/","backend":{"serviceName":"s1-lessie-ai-web-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/api/chat","backend":{"serviceName":"s1-lessie-go-api-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/api/conversation","backend":{"serviceName":"s1-lessie-go-api-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/api/shares","backend":{"serviceName":"s1-lessie-go-api-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/api/showcases","backend":{"serviceName":"s1-lessie-go-api-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/api/searches","backend":{"serviceName":"s1-lessie-go-api-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/api/","backend":{"serviceName":"s1-lessie-agents-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/prod-api/agent/","backend":{"serviceName":"s1-flymoon-agent-svc","servicePort":"http"}},{"host":"test.jennie.im","path":"/prod-api/system","backend":{"serviceName":"s1-flymoon-agent-svc","servicePort":"http"}}]'
kubernetes.io/ingress.qcloud-loadbalance-id: lb-2ro8hoe0
kubernetes.io/ingress.rule-mix: "true"
creationTimestamp: "2025-11-10T10:28:54Z"
finalizers:
- ingress.k8s.tencent/resources
generation: 2
labels:
ingress.cloud.tencent.com/loadbalance-type: OPEN
managedFields:
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:loadBalancer:
f:ingress: {}
manager: service-controller
operation: Update
subresource: status
time: "2025-11-10T10:29:12Z"
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:ingress.cloud.tencent.com/tke-service-config-auto: {}
manager: tke-cloud-gw
operation: Update
time: "2025-11-10T10:30:16Z"
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:ingress.cloud.tencent.com/direct-access: {}
f:kubernetes.io/ingress.class: {}
f:kubernetes.io/ingress.extensiveParameters: {}
f:kubernetes.io/ingress.http-rules: {}
f:kubernetes.io/ingress.https-rules: {}
f:kubernetes.io/ingress.rule-mix: {}
f:spec:
f:rules: {}
f:tls: {}
manager: tke-platform-api
operation: Update
time: "2025-11-10T11:20:12Z"
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:ingress.cloud.tencent.com/client-token: {}
f:ingress.cloud.tencent.com/status.conditions: {}
f:kubernetes.io/ingress.qcloud-loadbalance-id: {}
f:finalizers:
.: {}
v:"ingress.k8s.tencent/resources": {}
f:labels:
.: {}
f:ingress.cloud.tencent.com/loadbalance-type: {}
manager: service-controller
operation: Update
time: "2025-11-12T07:56:00Z"
name: sit-ingress
namespace: sit
resourceVersion: "2234515988"
uid: ec5b21d8-4386-495d-a5c2-998ae6258f1a
spec:
rules:
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-ai-web-svc
port:
name: http
path: /
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-go-api-svc
port:
name: http
path: /api/chat
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-go-api-svc
port:
name: http
path: /api/conversation
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-go-api-svc
port:
name: http
path: /api/shares
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-go-api-svc
port:
name: http
path: /api/showcases
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-go-api-svc
port:
name: http
path: /api/searches
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-lessie-agents-svc
port:
name: http
path: /api/
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-flymoon-agent-svc
port:
name: http
path: /prod-api/agent/
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: s1-flymoon-agent-svc
port:
name: http
path: /prod-api/system
pathType: ImplementationSpecific
tls:
- hosts:
- test.jennie.im
secretName: jennie-im-sbydostx
status:
loadBalancer:
ingress:
- hostname: lb-2ro8hoe0-iadyek218pl4vqn0.clb.usw-tencentclb.cloud

View File

@@ -1,90 +0,0 @@
# ----------------------------
# Deployment
# ----------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-flymoon-payment-deployment
namespace: test-lessie
labels:
app: test-flymoon-payment
environment: test
project: flymoon
spec:
replicas: 1
selector:
matchLabels:
app: test-flymoon-payment
environment: test
project: flymoon
strategy:
type: RollingUpdate # 滚动更新策略
rollingUpdate:
maxSurge: 1 # 最大新增副本数
maxUnavailable: 0 # 最大不可用副本数
template:
metadata:
labels:
app: test-flymoon-payment
environment: test
project: flymoon
spec:
imagePullSecrets:
- name: dxin-image-repository # 镜像仓库凭证Secret
volumes:
- name: flymoon-payment-logs-volume
hostPath:
path: /data/logs/flymoon-payment/
type: DirectoryOrCreate
containers:
- name: test-flymoon-payment # 容器名称
image: uswccr.ccs.tencentyun.com/lessietest/flymoon-payment:v0.0.7 # 容器镜像
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)
---
# ----------------------------
# Service
# 集群内部http://test-flymoon-payment-svc.test-lessie.svc.cluster.local:8090
# 集群外部http://<Node-IP>:30809
# ----------------------------
apiVersion: v1
kind: Service
metadata:
name: test-flymoon-payment-svc
namespace: test-lessie
labels:
app: test-flymoon-payment
environment: test
project: flymoon
spec:
type: NodePort
selector: # 必须匹配 Deployment 的 labels 才能关联 Pod
app: test-flymoon-payment
environment: test
project: flymoon
ports:
- name: http
port: 8090 # ClusterIP 内部端口
targetPort: 8090 # 容器端口
nodePort: 30809 # 节点对外端口(30000-32767)

View File

@@ -1,89 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
ingress.cloud.tencent.com/auto-rewrite: "false"
ingress.cloud.tencent.com/client-token: 454eb954-4094-43fc-9cff-05f3f7f307c7
ingress.cloud.tencent.com/healthcheck-interval: "5"
ingress.cloud.tencent.com/healthcheck-method: GET
ingress.cloud.tencent.com/healthcheck-path: /health
ingress.cloud.tencent.com/healthcheck-timeout: "3"
ingress.cloud.tencent.com/healthy-threshold: "2"
ingress.cloud.tencent.com/status.conditions: '[{"type":"Ready","status":"True","lastTransitionTime":"2025-11-05T09:47:06Z","reason":"Success","message":""}]'
ingress.cloud.tencent.com/unhealthy-threshold: "3"
kubernetes.io/ingress.class: qcloud
kubernetes.io/ingress.extensiveParameters: '{"AddressIPVersion":"IPV4","InternetAccessible":{"InternetChargeType":"TRAFFIC_POSTPAID_BY_HOUR","InternetMaxBandwidthOut":100}}'
kubernetes.io/ingress.http-rules: "null"
kubernetes.io/ingress.https-rules: '[{"host":"test.jennie.im","path":"/","backend":{"serviceName":"test-lessie-ai-web-svc","servicePort":"80"}},{"host":"test.jennie.im","path":"/payment/webhook","backend":{"serviceName":"test-flymoon-payment-svc","servicePort":"8090"}},{"host":"test.jennie.im","path":"/sit-api/agent/","backend":{"serviceName":"test-flymoon-agent-svc","servicePort":"8070"}},{"host":"test.jennie.im","path":"/sit-api/system/","backend":{"serviceName":"test-flymoon-agent-svc","servicePort":"8070"}},{"host":"test.jennie.im","path":"/api/chat","backend":{"serviceName":"test-lessie-go-api-svc","servicePort":"8100"}}]'
kubernetes.io/ingress.qcloud-loadbalance-id: lb-ifri829c
kubernetes.io/ingress.rule-mix: "true"
creationTimestamp: "2025-10-31T06:28:10Z"
finalizers:
- ingress.k8s.tencent/resources
generation: 14
labels:
ingress.cloud.tencent.com/loadbalance-type: OPEN
name: test-lessie-ingress
namespace: test-lessie
resourceVersion: "2052378552"
uid: d196795e-711d-4b08-a5f7-22613becfc13
spec:
rules:
- host: test.jennie.im
http:
paths:
- backend:
service:
name: test-lessie-ai-web-svc
port:
number: 80
path: /
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: test-flymoon-payment-svc
port:
number: 8090
path: /payment/webhook
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: test-flymoon-agent-svc
port:
number: 8070
path: /sit-api/agent/
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: test-flymoon-agent-svc
port:
number: 8070
path: /sit-api/system/
pathType: ImplementationSpecific
- host: test.jennie.im
http:
paths:
- backend:
service:
name: test-lessie-go-api-svc
port:
number: 8100
path: /api/chat
pathType: ImplementationSpecific
tls:
- hosts:
- test.jennie.im
secretName: jennie-im-sbydostx
status:
loadBalancer:
ingress:
- hostname: lb-ifri829c-6dku12mwxpf5ivcs.clb.usw-tencentclb.cloud