# ---------------------------- # Deployment # ---------------------------- apiVersion: apps/v1 kind: Deployment metadata: name: s1-lessie-agents-deployment namespace: sit labels: app: s1-lessie-agents environment: s1 project: lessie spec: replicas: 1 selector: matchLabels: app: s1-lessie-agents environment: s1 project: lessie strategy: type: RollingUpdate # 滚动更新策略 rollingUpdate: maxSurge: 1 # 最大新增副本数(先加) maxUnavailable: 0 # 最大不可用副本数(不减) template: metadata: labels: app: s1-lessie-agents environment: s1 project: lessie spec: imagePullSecrets: - name: dxin-image-repository # 镜像仓库凭证Secret volumes: - name: aws-credentials-volume # aws-credentials 卷文件 configMap: name: aws-credentials - name: google-credentials-volume configMap: name: google-credentials - name: lessie-logs-volume hostPath: path: /data/logs/lessie-agents/ type: DirectoryOrCreate containers: - name: lessie-agents # 容器名称 image: uswccr.ccs.tencentyun.com/lessiesit/lessie-sourcing-agents:v0.0.2 # 容器镜像 imagePullPolicy: Always # 镜像拉取策略拉 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: APP_ENV value: "s1" - name: APP_PORT value: "8000" - name: GUNICORN_WORKERS value: "2" - name: MAX_REQUESTS value: "200" - name: MAX_REQUESTS_JITTER value: "50" ports: - containerPort: 8000 # 容器暴露的端口 resources: requests: cpu: "0.5" # 容器请求分配0.5个CPU核心(这不是实际占用,但调度会以这里进行参考) memory: "2Gi" # 容器请求分配1Gi内存(这会实际预留) limits: cpu: "2" # 最多可以使用2个CPU核心 memory: "10Gi" # 容器最多可以使用10Gi内存 volumeMounts: - name: aws-credentials-volume mountPath: /root/.aws/ - name: google-credentials-volume mountPath: /root/.google/ - name: lessie-logs-volume mountPath: /data/webapps/lessie_sourcing_agents/logs/ subPathExpr: lessie-agents-$(POD_NAME) readinessProbe: # 就绪探针,用于判断容器是否已准备好接收流量 httpGet: path: /health port: 8000 initialDelaySeconds: 20 # 就绪探测在容器启动后等待多少秒才开始第一次探测(避免应用启动未完成即被判为不就绪) periodSeconds: 10 # 就绪探测的间隔秒数,每隔多少秒执行一次探测 timeoutSeconds: 5 # 单次就绪探测的超时时间(秒),超过则该次探测视为失败 failureThreshold: 3 # 连续失败多少次后认为就绪探测失败(Pod 不再被视为就绪) livenessProbe: # 存活探针,用于判断容器是否仍然健康,失败会触发重启 httpGet: path: /health port: 8000 initialDelaySeconds: 10 # 存活探测在容器启动后等待多少秒才开始第一次探测 periodSeconds: 30 # 存活探测的间隔秒数 timeoutSeconds: 5 # 单次存活探测的超时时间(秒) failureThreshold: 3 # 连续失败多少次后认为容器不健康并触发重启 --- # ---------------------------- # Service # 集群内部:http://s1-lessie-agents-svc.sit.svc.cluster.local:8000 # curl -v -X POST http://xxxxxxx:8000/api/chat/stream -H "Content-Type: application/json" -d '{"message": "hello"}' # ---------------------------- apiVersion: v1 kind: Service metadata: name: s1-lessie-agents-svc namespace: sit labels: app: s1-lessie-agents environment: s1 project: lessie spec: type: ClusterIP selector: # 必须匹配 Deployment 的 labels 才能关联 Pod app: s1-lessie-agents environment: s1 project: lessie ports: - name: http port: 8000 # ClusterIP 内部端口 targetPort: 8000 # 容器端口