apiVersion: apps/v1 kind: Deployment metadata: name: permission-service namespace: erp labels: app: permission-service version: v1 spec: replicas: 2 selector: matchLabels: app: permission-service strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: permission-service version: v1 annotations: prometheus.io/scrape: "true" prometheus.io/port: "8084" prometheus.io/path: "/actuator/prometheus" spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - permission-service topologyKey: kubernetes.io/hostname containers: - name: permission-service image: registry.erpzbbh.cn/erp/permission-service:1.0.0 imagePullPolicy: Always ports: - name: http containerPort: 8084 protocol: TCP env: - name: SPRING_PROFILES_ACTIVE value: "prod" - name: DB_HOST valueFrom: configMapKeyRef: name: erp-config key: DB_HOST - name: DB_PORT valueFrom: configMapKeyRef: name: erp-config key: DB_PORT - name: DB_NAME valueFrom: configMapKeyRef: name: erp-config key: DB_NAME - name: DB_USERNAME valueFrom: secretKeyRef: name: erp-secrets key: DB_USERNAME - name: DB_PASSWORD valueFrom: secretKeyRef: name: erp-secrets key: DB_PASSWORD - name: REDIS_HOST valueFrom: configMapKeyRef: name: erp-config key: REDIS_HOST - name: REDIS_PORT valueFrom: configMapKeyRef: name: erp-config key: REDIS_PORT - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: erp-secrets key: REDIS_PASSWORD - name: NACOS_HOST valueFrom: configMapKeyRef: name: erp-config key: NACOS_HOST - name: NACOS_PORT valueFrom: configMapKeyRef: name: erp-config key: NACOS_PORT resources: requests: cpu: 200m memory: 512Mi limits: cpu: 1000m memory: 1Gi livenessProbe: httpGet: path: /actuator/health port: http initialDelaySeconds: 60 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: /actuator/health port: http initialDelaySeconds: 30 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 lifecycle: preStop: exec: command: - sh - -c - sleep 10 --- apiVersion: v1 kind: Service metadata: name: permission-service namespace: erp labels: app: permission-service spec: type: ClusterIP ports: - name: http port: 8084 targetPort: http protocol: TCP selector: app: permission-service --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: permission-service-hpa namespace: erp spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: permission-service minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80