【问题标题】:NGINX Ingress on a bare-metal cluster裸机集群上的 NGINX 入口
【发布时间】:2020-10-18 15:53:44
【问题描述】:

我在裸机主机上的每个节点设置了一个三节点集群(1 个主节点,2 个工作节点)。为了让流量进入集群,我使用 NGINX Ingress 控制器,使用 stable/ngix-controller helm 子图安装。由于我没有使用任何负载均衡器,因此我将 externalIPs 字段设置为我的主节点 IP,并将 externalTrafficPolicy 设置为 Local。 p>

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

如果 pod 和入口控制器都没有在 master 上运行,我的发往给定域的流量如何到达正确的节点和后续 pod?不应该像这里所说的那样丢弃数据包Ingress controller NodePort service

提前致谢!! 干杯!!

----编辑----

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

【问题讨论】:

  • 您在哪里将 externalTrafficPolicy 设置为本地?
  • 在入口控制器配置中

标签: kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    kube-proxy

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

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

    kube-proxy 使用操作系统包过滤层(如果有的话)。否则,kube-proxy 会自行转发流量。

    ingress-nginx服务使用NodePort服务类型时,会暴露在每个节点上。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-03-06
      • 2020-08-05
      • 2021-05-16
      • 2021-03-04
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2021-09-14
      • 2021-09-27
      相关资源
      最近更新 更多