apiVersion: apps/v1 kind: Deployment metadata: name: search-api namespace: juwan labels: app: search-api spec: replicas: 3 revisionHistoryLimit: 5 selector: matchLabels: app: search-api template: metadata: labels: app: search-api spec: serviceAccountName: find-endpoints containers: - name: search-api image: 103.236.53.208:4418/juwan/search-api:latest imagePullPolicy: Always ports: - containerPort: 8888 - containerPort: 4001 readinessProbe: tcpSocket: port: 8888 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: tcpSocket: port: 8888 initialDelaySeconds: 15 periodSeconds: 20 resources: requests: cpu: 500m memory: 512Mi limits: cpu: 1000m memory: 1024Mi volumeMounts: - name: timezone mountPath: /etc/localtime volumes: - name: timezone hostPath: path: /usr/share/zoneinfo/Asia/Shanghai --- apiVersion: v1 kind: Service metadata: name: search-api-svc namespace: juwan annotations: prometheus.io/scrape: "true" prometheus.io/port: "4001" prometheus.io/path: "/metrics" spec: ports: - name: http port: 8888 targetPort: 8888 - name: metrics port: 4001 targetPort: 4001 selector: app: search-api --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: search-api-hpa-c namespace: juwan labels: app: search-api-hpa-c spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: search-api minReplicas: 3 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 80 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: search-api-hpa-m namespace: juwan labels: app: search-api-hpa-m spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: search-api minReplicas: 3 maxReplicas: 10 metrics: - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80