apiVersion: apps/v1 kind: Deployment metadata: name: easyai-asg labels: app.kubernetes.io/name: easyai-asg spec: replicas: 2 revisionHistoryLimit: 3 selector: matchLabels: app.kubernetes.io/name: easyai-asg strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app.kubernetes.io/name: easyai-asg spec: serviceAccountName: easyai-workload terminationGracePeriodSeconds: 45 containers: - name: easyai-asg image: registry.cn-shanghai.aliyuncs.com/easyaigc/agent-governance:latest imagePullPolicy: Always ports: - name: http containerPort: 3003 - name: tcp containerPort: 4003 envFrom: - configMapRef: name: easyai-app-config - secretRef: name: easyai-app-secret env: - name: ASG_TCP_HOST value: 0.0.0.0 - name: ASG_TCP_PORT value: "4003" - name: ASG_MAIN_BACKEND_URL value: http://easyai-server:3001 volumeMounts: - name: pm2 mountPath: /app/.pm2 readinessProbe: httpGet: path: /health port: http initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 livenessProbe: httpGet: path: /health port: http initialDelaySeconds: 60 periodSeconds: 30 timeoutSeconds: 5 failureThreshold: 3 resources: requests: cpu: 200m memory: 256Mi limits: cpu: "1" memory: 512Mi volumes: - name: pm2 emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: easyai-asg labels: app.kubernetes.io/name: easyai-asg spec: type: ClusterIP selector: app.kubernetes.io/name: easyai-asg ports: - name: http port: 3003 targetPort: http - name: tcp port: 4003 targetPort: tcp