繁体   English   中英

NGINX 裸机集群上的入口

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM