Распределение нагрузки в г. Кубернетес - PullRequest
1 голос
/ 22 апреля 2020

У меня есть служба в Kubernetes, которая получает запросы Http для создания пользователей,

Только с 1 модулем, он правильно достигает 100 запросов в минуту, после этого он имеет задержки, дело в том, что если вы удерживаете 100 запросов с 1 пакетом, следует ли хранить 500 запросов в минуту с 5 пакетами?

Поскольку даже при 10 пакетах при превышении 100 заказов в минуту неправильно распределяется нагрузка и появляется задержка в службах.

Конфигурация загрузки по умолчанию, которую я понимаю, - циклический перебор, проблема в том, что я вижу, что оперативная память увеличивается только в одном из модулей и неправильно распределяет нагрузку.

Это моя служба развертывания yaml и мой HPA yaml.

Развертывание Yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: create-user-service
  labels:
    app: create-user-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: create-user-service
  template:
    metadata:
      labels:
        app: create-user-service
    spec:
      volumes:
        - name: key
          secret:
            secretName: my-secret-key
      containers:
        ### [LISTPARTY CONTAINER]
        - name: create-user-service
          image: docker/user-create/create-user-service:0.0.1
          volumeMounts:
            - name: key
              mountPath: /var/secrets/key
          ports:
            - containerPort: 8080
          env:
            - name: PORT
              value: "8080"
          resources:
            limits:
              cpu: "2.5"
              memory: 6Gi
            requests:
              cpu: "1.5"
              memory: 5Gi
          livenessProbe:    ## is healthy
            failureThreshold: 3
            httpGet:
              path: /healthcheck/livenessprobe
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: create-user-service
spec:
  ports:
    - port: 8080
      targetPort: 8080
      protocol: TCP
      name: http
  selector:
    app: create-user-service
  type: NodePort

HPA Yaml

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: create-user-service
spec:
  maxReplicas: 10
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: create-user-service
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 75
  - type: Resource
    resource:
      name: memory
      targetAverageUtilization: 75
  - external:
      metricName: serviceruntime.googleapis.com|api|request_count
      metricSelector:
        matchLabels:
          resource.type: api
          resource.labels.service: create-user-service.endpoints.user-create.cloud.goog
      targetAverageValue: "3"
    type: External

Что может произойти?.

Спасибо всем.

...