没有标签选择器的Kubernetes负载均衡器

时间:2019-06-04 13:06:24

标签: kubernetes amazon-eks aws-eks eks

尝试使用Kubernetes创建Laod Balancer资源(用于EKS集群)。它可以与“标签选择器”一起正常使用,但是我们希望每个集群只有一个LB,然后让入口直接服务。 这是我目前拥有的:

kind: Service
apiVersion: v1
metadata:
  namespace: default
  name: name
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
spec:
  ports:
  - port: 80
  type: LoadBalancer

这将创建一个LB并为其提供内部DNS,但是实例永远不会变得健康(尽管它们是健康的)。

任何建议

2 个答案:

答案 0 :(得分:0)

LB目标组的监视页面显示哪些故障?是否有HTTP错误响应或只是连接错误? 是否已将K8S节点的安全组设置为允许从LB进入?

答案 1 :(得分:0)

您在another question中发布的每个讨论。我认为您想要实现的是One Load Balancer Per Cluster,是指Save on your AWS bill with Kubernetes Ingress

要实现此目的,您需要创建:

  1. 一个Load Balancer Service,其中有Nginx-Ingress-Controller个pod作为后端。
  2. 您的Load balancer Service将拥有一个外部IP,将所有群集流量都指向该IP。
  3. 可根据需要路由所有群集流量的入口规则。

因此,您的流量将通过以下管道:

  

所有流量-> AWS LoadBalancer-> Node1:xxxx->   Nginx入口控制器服务-> Nginx入口控制器Pod->您的Service1(基于入口规则)->   您的豆荚

以下是如何启动Nginx-Ingress-Controller的示例:https://hackernoon.com/setting-up-nginx-ingress-on-kubernetes-2b733d8d2f45