Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes的吊舱载荷分布_Kubernetes_Google Cloud Platform_Google Kubernetes Engine_Scalability_Kubernetes Pod - Fatal编程技术网

Kubernetes的吊舱载荷分布

Kubernetes的吊舱载荷分布,kubernetes,google-cloud-platform,google-kubernetes-engine,scalability,kubernetes-pod,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Scalability,Kubernetes Pod,我在Kubernetes中有一个服务,它接收Http请求来创建用户 只有一个pod,它才能正确地达到每分钟100个请求,在此之后,它会有延迟,关键是如果你用一个pod处理100个请求,那么你应该用5个pod处理500个请求吗 因为即使有10个pod,当每分钟超过100个订单时,也无法正确分配负载,并且在服务中出现延迟 我理解的默认负载配置是循环配置,问题是我看到ram只在一个POD中增加,并且没有正确分配负载 这是我的服务yaml部署和我的HPA yaml 部署Yaml apiVersion:

我在Kubernetes中有一个服务,它接收Http请求来创建用户

只有一个pod,它才能正确地达到每分钟100个请求,在此之后,它会有延迟,关键是如果你用一个pod处理100个请求,那么你应该用5个pod处理500个请求吗

因为即使有10个pod,当每分钟超过100个订单时,也无法正确分配负载,并且在服务中出现延迟

我理解的默认负载配置是循环配置,问题是我看到ram只在一个POD中增加,并且没有正确分配负载

这是我的服务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
可能会发生什么事


谢谢大家。

默认的负载分配绝对不是循环分配。Kube代理在其维护的IP表上进行随机选择。随着时间的推移,负载是平均的,但它肯定不会一直精确。请查看[link][link]以了解关于同一主题的讨论。默认的负载分布绝对不是循环。Kube代理在其维护的IP表上进行随机选择。随着时间的推移,负载是平均的,但它肯定不会一直精确。有关同一主题的讨论,请参阅[链接][链接]。