[英]NGINX Ingress on a bare-metal cluster
我在裸机主机上的每个节点都设置了一个三节点集群(1 个主节点,2 个工作节点)。 为了让流量进入集群,我使用了 NGINX Ingress controller,使用 stable/ngix-controller helm 子图安装。 由于我没有使用任何负载均衡器,因此我将externalIPs字段设置为我的主节点 IP 并将externalTrafficPolicy设置为Local 。
我的入口 object 有 3 个主机域,每个域都设置为特定服务。 这些域被添加到我的计算机 /etc/hosts 指向 masterIP。
如果 pod 和入口 controller 都没有在 master 上运行,我的发往给定域的流量如何到达正确的节点和后续 pod? 不应该按照此处所述丢弃数据包Ingress controller NodePort 服务
提前致谢!! 干杯!!
- - 编辑 - -
nginx-ingress:
controller:
config:
hsts: "true"
scope:
namespace: ingress-nginx
service:
externalIPs:
- "10.X.X.X"
externalTrafficPolicy: Local
如果将 externalIp 设置为其中一个节点,则可以毫无问题地使用 nginx 入口。 这是因为 nginx 将绑定在节点上的端口 80 上,就像你说的主节点中没有 Pod。
允许节点之间通信的机制是kube-proxy 。 并且文档有以下内容:
kube-proxy
kube-proxy 是在集群中的每个节点上运行的网络代理,实现了 Kubernetes 服务概念的一部分。
kube-proxy在节点上维护网络规则。 这些网络规则允许从集群内部或外部的网络会话与 Pod 进行网络通信。
kube-proxy 使用操作系统包过滤层(如果有并且可用)。 否则,kube-proxy 会自行转发流量。
当ingress-nginx
服务使用NodePort
服务类型时,它会暴露在每个节点上。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.