NGINX Ingress在裸机集群上

时间:2020-06-28 11:35:00

标签: kubernetes kubernetes-ingress nginx-ingress

我已经在裸机主机上的每个节点上设置了三个节点集群(1个主节点,2个工人)。为了让流量进入集群,我使用了NGINX Ingress控制器,该控制器是通过稳定/ ngix-controller头盔子图安装的。由于我没有使用任何负载均衡器,因此将 externalIPs 字段设置为主节点IP,并将 externalTrafficPolicy 设置为 Local

我的入口对象有3个主机域,每个域都设置为特定服务。这些域已添加到我的计算机/ etc / hosts中,指向masterIP。

如果Pod和入口控制器都未在主服务器上运行,发往给定域的流量如何到达正确的节点和后续Pod?不应如此处Ingress controller NodePort service

所述丢弃数据包

提前谢谢!! 干杯!

----编辑----

nginx-ingress:
  controller:
    config:
      hsts: "true"
    scope:
      namespace: ingress-nginx
    service:
      externalIPs:
        - "10.X.X.X"
      externalTrafficPolicy: Local

2 个答案:

答案 0 :(得分:0)

如果将externalIp设置为节点之一,则可以毫无问题地使用nginx入口。这是因为nginx将绑定到节点上的端口80,就像您说的那样,主节点中将没有pod。

答案 1 :(得分:0)

允许节点之间通信的机制是kube-proxy。并且该文档具有以下内容:

kube-proxy

kube-proxy是一个网络代理,它在群集中的每个node上运行,实现了Kubernetes Service概念的一部分。

kube-proxy维护节点上的网络规则。这些网络规则允许从群集内部或外部的网络会话与Pod进行网络通信。

kube-proxy使用操作系统数据包筛选层(如果有)并且可用。否则,kube-proxy会转发流量本身。

ingress-nginx服务使用NodePort服务类型时,它将在每个节点上公开。

希望有帮助。