apiVersion: apps/v1 kind: Deployment metadata: name: email-api namespace: juwan labels: app: email-api spec: replicas: 3 revisionHistoryLimit: 5 selector: matchLabels: app: email-api template: metadata: labels: app: email-api spec: serviceAccountName: find-endpoints containers: - name: email-api image: email ports: - containerPort: 8888 env: - name: KAFKA_BROKER value: "my-cluster-kafka-bootstrap.kafka.svc.cluster.local:9092" - name: REDIS_M_HOST value: "user-redis-master.juwan:6379" - name: REDIS_S_HOST value: "user-redis-replica.juwan:6379" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: user-redis key: password 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: email-api-svc namespace: juwan spec: ports: - port: 8888 targetPort: 8888 selector: app: email-api --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: email-api-hpa-c namespace: juwan labels: app: email-api-hpa-c spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: email-api minReplicas: 3 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 80 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: email-api-hpa-m namespace: juwan labels: app: email-api-hpa-m spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: email-api minReplicas: 3 maxReplicas: 10 metrics: - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80