Kubernetes的吊舱载荷分布
我在Kubernetes中有一个服务,它接收Http请求来创建用户 只有一个pod,它才能正确地达到每分钟100个请求,在此之后,它会有延迟,关键是如果你用一个pod处理100个请求,那么你应该用5个pod处理500个请求吗 因为即使有10个pod,当每分钟超过100个订单时,也无法正确分配负载,并且在服务中出现延迟 我理解的默认负载配置是循环配置,问题是我看到ram只在一个POD中增加,并且没有正确分配负载 这是我的服务yaml部署和我的HPA yaml 部署YamlKubernetes的吊舱载荷分布,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:
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表上进行随机选择。随着时间的推移,负载是平均的,但它肯定不会一直精确。有关同一主题的讨论,请参阅[链接][链接]。