【发布时间】:2019-07-11 04:15:54
【问题描述】:
我最近开始使用 Kubernetes 集群。我们集群中给定 Kubernetes 服务的网络调用流程如下所示:
外部非 K8S 负载均衡器 -> 入口控制器 -> 入口资源 -> 服务 -> Pod
对于给定的服务,有两个副本。通过查看副本中容器的日志,我可以看到调用被路由到不同的 pod。据我所知,我们没有在任何地方为我们在 Kubernetes 中的服务明确设置任何负载平衡策略。
我有几个问题:
1) K8S 有默认的负载均衡策略吗?我读过有关 kube-proxy 和随机路由的信息。这绝对不是循环赛。 2)是否有一种明显的方法可以在 Ingress 资源本身中指定负载平衡规则?以每项服务为基础?
查看我们的一个 Ingress 资源,我可以看到“loadBalancer”属性为空:
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/rewrite-target: /
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"ingress.kubernetes.io/rewrite-target":"/","nginx.ingress.kubernetes.io/rewrite-target":"/"},"name":"example-service-ingress","namespace":"member"},"spec":{"rules":[{"host":"example-service.x.x.x.example.com","http":{"paths":[{"backend":{"serviceName":"example-service-service","servicePort":8080},"path":""}]}}]}}
nginx.ingress.kubernetes.io/rewrite-target: /
creationTimestamp: "2019-02-13T17:49:29Z"
generation: 1
name: example-service-ingress
namespace: x
resourceVersion: "59178"
selfLink: /apis/extensions/v1beta1/namespaces/x/ingresses/example-service-ingress
uid: b61decda-2fb7-11e9-935b-02e6ca1a54ae
spec:
rules:
- host: example-service.x.x.x.example.com
http:
paths:
- backend:
serviceName: example-service-service
servicePort: 8080
status:
loadBalancer:
ingress:
- {}
我应该指定 - 我们使用的是本地 Kubernetes 集群,而不是云端。
干杯!
【问题讨论】:
标签: kubernetes