【问题标题】:How to fix Kubernetes Ingress Controller cutting off nodes from cluster如何修复 Kubernetes Ingress Controller 切断集群中的节点
【发布时间】:2019-03-27 08:32:20
【问题描述】:

我在我的本地集群(使用 Kubespray 创建,运行 MetalLB 以创建 LoadBalancer)中安装 Ingress Controller 时遇到了一些问题。

我尝试使用 nginx、traefik 和 kong,但都得到了相同的结果。

我正在使用以下 values.yaml 安装我的 nginx helm 图表:

controller:
  kind: DaemonSet
  nodeSelector:
    node-role.kubernetes.io/master: ""
  image:
    tag: 0.23.0
rbac:
  create: true

使用命令:

helm install --name nginx stable/nginx-ingress --values values.yaml --namespace ingress-nginx

当我在集群中部署入口控制器时,会创建一个服务(例如,用于 nginx 的 nginx-ingress-controller)。该服务属于 LoadBalancer 类型,并获取外部 IP。

分配此外部 IP 后,链接到此外部 IP 的节点将丢失(状态未就绪)。但是,当我检查此节点时,它仍在运行,只是与其他节点断开了 节点,它甚至无法 ping 它们(未找到路由)。当我删除服务(而不是 nginx helm 图表的其余部分)时,一切正常并且 Ingress 正常工作。我还尝试在没有 LoadBalancer 的情况下使用 NodePorts 或服务上的外部 IP 安装 nginx/traefik/kong,但我得到了相同的结果。

有人认识这种行为吗? 为什么即使我删除了 nginx-ingress-controller 服务,入口仍然有效?

【问题讨论】:

  • 您能否详细说明一下 - “链接到此外部 IP 的节点已丢失”您的意思是,该节点和入口服务试图分配相同的公共 IP?
  • 嗨@A_Suh,感谢您的回复!服务的外部 IP 是我集群中 5 个节点之一的 IP。我们称该节点为 X。当服务创建并获得外部 IP 时,X 的状态为“未就绪”。但是,X 并没有关闭,因为我仍然可以登录它并且 kubelet 仍在运行。服务安装在我的集群中的那一刻,X 无法再访问主节点,因此它的运行状况 ping 无法再到达主节点。当我从 X ping 到主节点(或任何其他节点)时,我得到“目标主机无法访问”。
  • 这很奇怪,您的 DHCP 服务器正在为已分配给节点的服务分配 IP。您会尝试手动为您的入口服务设置静态 IP 地址吗?即apiVersion: v1 kind: Service spec: type: LoadBalancer loadBalancerIP: 10.10.10.10
  • 哦,你是对的,对于 MetalLB,你必须提供节点的 IP 地址。你设法解决了这个问题吗?
  • 嗨@A_Suh,我刚刚设法解决了这个问题。事实证明你是对的,我确实需要指定集群外部的 IP 来解决这个问题。起初这不起作用的原因是因为我的网络中没有配置 DHCP。感谢您的帮助!

标签: nginx kubernetes traefik kubernetes-ingress kong


【解决方案1】:

经过长时间的搜索,我们终于找到了解决这个问题的有效解决方案。

正如@A_Suh 所提到的,metallb 使用的 IP 池应该包含集群中的一个节点当前未使用的 IP。通过添加也在 DHCP 服务器中配置的新 IP 范围,metallb 可以使用 ARP 将其中一个 IP 链接到其中一个节点。

例如在我的 5 节点集群 (kube11-15) 中:当 metallb 获取范围 10.4.5.200/31 并为我的 nginx-ingress-controller 分配 10.4.5.200 时,10.4.5.200 链接到 kube12。在 10.4.5.200 的 ARP 请求上,所有 5 个节点都以 kube12 响应,流量将被路由到该节点。

【讨论】:

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