Kubernetes Ingress - 第二个节点端口没有响应

2023-12-11

我在本地运行 K8S 集群(云中没有),有一个 K8S 主节点和两个工作节点。

  • k8s-master:192.168.100.100
  • 工作节点1:192.168.100.101
  • 工作节点2:192.168.100.102

我使用 kubernetes / ingress-nginx 将流量路由到我的简单应用程序。 这些是我在两个工作节点上运行的 pod:

[root@k8s-master ingress]# kubectl get pods -A -o wide
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE   IP                NODE            NOMINATED NODE   READINESS GATES
default                hello-685445b9db-b7nql                       1/1     Running   0          44m   10.5.2.7          worker-node-2   <none>           <none>
default                hello-685445b9db-ckndn                       1/1     Running   0          44m   10.5.2.6          worker-node-2   <none>           <none>
default                hello-685445b9db-vd6h2                       1/1     Running   0          44m   10.5.1.18         worker-node-1   <none>           <none>
default                ingress-nginx-controller-56c75d774d-p7whv    1/1     Running   1          30h   10.5.1.14         worker-node-1   <none>           <none>
kube-system            coredns-74ff55c5b-s8zss                      1/1     Running   12         16d   10.5.0.27         k8s-master      <none>           <none>
kube-system            coredns-74ff55c5b-w6rsh                      1/1     Running   12         16d   10.5.0.26         k8s-master      <none>           <none>
kube-system            etcd-k8s-master                              1/1     Running   12         16d   192.168.100.100   k8s-master      <none>           <none>
kube-system            kube-apiserver-k8s-master                    1/1     Running   12         16d   192.168.100.100   k8s-master      <none>           <none>
kube-system            kube-controller-manager-k8s-master           1/1     Running   14         16d   192.168.100.100   k8s-master      <none>           <none>
kube-system            kube-flannel-ds-76mt8                        1/1     Running   1          30h   192.168.100.102   worker-node-2   <none>           <none>
kube-system            kube-flannel-ds-bfnjw                        1/1     Running   10         16d   192.168.100.101   worker-node-1   <none>           <none>
kube-system            kube-flannel-ds-krgzg                        1/1     Running   13         16d   192.168.100.100   k8s-master      <none>           <none>
kube-system            kube-proxy-6bq6n                             1/1     Running   1          30h   192.168.100.102   worker-node-2   <none>           <none>
kube-system            kube-proxy-df8fn                             1/1     Running   13         16d   192.168.100.100   k8s-master      <none>           <none>
kube-system            kube-proxy-z8q2z                             1/1     Running   10         16d   192.168.100.101   worker-node-1   <none>           <none>
kube-system            kube-scheduler-k8s-master                    1/1     Running   12         16d   192.168.100.100   k8s-master      <none>           <none>
kubernetes-dashboard   dashboard-metrics-scraper-799cd98cf6-zh8xs   1/1     Running   9          16d   192.168.100.101   worker-node-1   <none>           <none>
kubernetes-dashboard   kubernetes-dashboard-74d688b6bc-hvxgm        1/1     Running   10         16d   10.5.1.17         worker-node-1   <none>           <none>

这些是我的集群上运行的服务:

[root@k8s-master ingress]# kubectl get svc
NAME                                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
hello                                NodePort    10.105.236.241   <none>        80:31999/TCP                 30h
ingress-nginx-controller             NodePort    10.110.141.41    <none>        80:30428/TCP,443:32682/TCP   30h
ingress-nginx-controller-admission   ClusterIP   10.109.15.31     <none>        443/TCP                      30h
kubernetes                           ClusterIP   10.96.0.1        <none>        443/TCP                      16d

这是入口描述:

[root@k8s-master ingress]# kubectl describe  ingress ingress-hello
Name:             ingress-hello
Namespace:        default
Address:          10.110.141.41
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /hello   hello:80 (10.5.1.18:80,10.5.2.6:80,10.5.2.7:80)
Annotations:  kubernetes.io/ingress.class: nginx
              nginx.ingress.kubernetes.io/rewrite-target: /

问题是通过访问worker-node-1 IP地址和入口控制器端口=来访问第一个节点时30428, http://192.168.100.101:30428,它工作正常,没有任何问题。 通过访问具有相同入口端口的IP来访问worker-node-2时30428, its 未响应从节点外部以及节点内部也可以通过访问 URL:http://192.168.100.102:30428。 我还尝试执行 telnet 命令(在工作节点 2 内),但也不走运:

[root@worker-node-2 ~]# telnet 192.168.100.102 30428
Trying 192.168.100.102...

最有趣的是端口显示在 netstat 命令中,因为我从 Node-2 内部执行此命令,显示入口端口:30428 在LISTEN state:

[root@worker-node-2 ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      1284/kubelet
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      2578/kube-proxy
tcp        0      0 0.0.0.0:32682           0.0.0.0:*               LISTEN      2578/kube-proxy
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1856/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1020/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1016/cupsd
tcp        0      0 127.0.0.1:41561         0.0.0.0:*               LISTEN      1284/kubelet
tcp        0      0 0.0.0.0:30428           0.0.0.0:*               LISTEN      2578/kube-proxy
tcp        0      0 0.0.0.0:31999           0.0.0.0:*               LISTEN      2578/kube-proxy
tcp6       0      0 :::10250                :::*                    LISTEN      1284/kubelet
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::10256                :::*                    LISTEN      2578/kube-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      1020/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      1016/cupsd
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           929/avahi-daemon: r
udp        0      0 0.0.0.0:44997           0.0.0.0:*                           929/avahi-daemon: r
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1856/dnsmasq
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1856/dnsmasq
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd

根据我的理解,所有工作节点都必须公开“入口控制器”端口的 NodePort,其中 = 30428?

Edited:我找到“入口-nginx-控制器-56c75d774d-p7whv”仅部署在node-1上。 我是否需要确保 ingress-nginx 控制器在所有节点上运行?如果这个说法是正确的,如何实现这一目标?


Kubernetes 网络(更具体地说是 kube-proxy)使用 iptables 来控制 Pod 和节点之间的网络连接。由于 Centos 8 使用nftables反而iptables这会导致网络问题。

Calico v.3.8.1+ 包含对在 NFT 模式下使用 iptables 的主机的支持。 解决办法是设置FELIX_IPTABLESBACKEND=NFT选项。这将告诉 Calico 使用 nftables 支持。

此参数控制 Felix 使用哪种 iptables 二进制版本。 将其设置为Auto用于自动检测后端。如果一个特定的 需要后端然后使用NFT对于使用 netfilter 后端的主机 或者Legacy为他人。 [默认:Legacy]

请访问此 calico 页面以查看如何配置菲利克斯。 如需更多阅读,请访问这个github问题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes Ingress - 第二个节点端口没有响应 的相关文章

随机推荐

  • scanf 导致 C 中的无限循环

    我对 C 语言比较陌生 但我已经编程几年了 我正在为大学课程编写一个程序 我很困惑为什么下面的 scanf 函数没有被调用 导致无限循环 我尝试过将 scanf 放在函数之外 调用它两次 一次从内部 一次从外部 以及其他一些方式 我在网上读
  • BizTalk部署期间不需要通过控制台导入MIS时

    允许哪些 BizTalk 应用程序 编排 模式 映射更改不强制通过管理控制台导入 MSI 而只在 GAC 中安装 DLL 通过控制台强制导入以停止编排并终止实例 但在 GAC 中安装仅需要重新启动该应用程序的主机 因此 有时不停止生产环境中
  • 一个接一个地执行方法,执行之间有暂停

    新手 obj c 问题 我正在编写一个简单的 iPad 演示文稿 不适用于 Appstore 我的任务是实现几个相继执行的方法 并且它们之间几乎没有停顿 主要结构如下 查看负载 暂停两秒 然后执行method1 暂停两秒 然后执行metho
  • 检查多个列中的一个值

    我有一个包含这样的列的表 例如 id col1 col2 col3 col4 现在 我想检查一下是否ANY of col1 col2 col3 col4具有传递的值 要做到这一点 路还很长 SELECT FROM table WHERE c
  • 从购物车中删除运费计算

    如何从商店的购物车中删除运费计算 这是网站 tintinportintin com br 在 app design frontend base default checkout xml 的第 89 行 你会发现
  • CPU最大线程数

    这与处理器的线程有什么关系 例如 Intel i5 有四个核心和四个线程 我们的程序中可以使用多少个线程 例如在 C 中使用 std thread STL 8个线程对于一个程序来说是大还是小 这确实取决于 根据经验 将线程数量限制为接近核心
  • Hyperledger Composer:错误:无法请求身份。尝试注册用户并返回证书时出错

    我正在关注一个hyperledger composer tutorial 我无法在执行命令时执行步骤 15 composer identity request c PeerAdmin byfn network org1 only u adm
  • 为什么 stat_密度 (R; ggplot2) 和 gaussian_kde (Python; scipy) 不同?

    我正在尝试对一系列可能不是正态分布的分布生成基于 KDE 的 PDF 估计 我喜欢 R 中 ggplot 的 stat 密度 似乎可以识别频率中的每个增量波动 但无法通过 Python 的 scipy stats gaussian kde
  • 无法 json_encode() 数组或 Laravel 集合:“不支持类型”

    我不知道我做错了什么 因为它适用于应用程序中的所有其他模型 我多次刷新并重新播种数据库 这些模型扩展了相同的抽象方法 这是控制器中的代码 substrates this gt substrates gt all gt toArray tem
  • 将 CSV 文件中的日期列以“YYYYMMDDHH24MISS”格式格式化为 ksh 中的“YYYYMMDD HH24MISS”格式

    我编写了一个脚本 它从 CSV 文件中获取值并将其插入到 postgres 表中 但遇到了问题 CSV 文件中的日期列采用 YYYYMMDDHH24MISS 格式 表中的同一列定义为时间戳 当使用 copy 命令插入时 出现以下错误 ERR
  • 从 React 数组中删除项目

    我的removeItem函数有问题 它应该删除当前的 li 该按钮嵌套在 this state list 上的数组中的项目中 目前没有代码 因为我尝试了很多东西 但没有任何效果 所以我最终console logs看看发生了什么 所以我删除了
  • 在 Cpanel 上上传 Laravel 项目中的图像

    我的功能是上传图像 但问题是为什么图像没有上传到 public html 文件夹 图像上传到项目的公共文件夹中 private function upload image tbl name image gt getClientOrigina
  • Qt::BackgroundRole 似乎被忽略

    我正在使用源自的自定义表格模型QAbstractTableModel 我已经覆盖了headerData 我可以通过返回颜色来更改单个行标题 或列标题 但我在这里只讨论行 的字体颜色Qt ForegroundRole if role Qt F
  • Java Swing:JScrollPane 不工作

    我有一个包含一些字段的 JPanel JPanel 的高度有限 因此我必须在它周围放置一个 JScrollPane 以便人们可以向下滚动 正如您在下面看到的 它显示得非常完美 但您无法向下 或向上 滚动 DetailPanel detail
  • 如何在 Azure AD 身份验证后重定向到 ASP Net Core MVC 中的不同控制器操作

    我已将 ASP Net Core 2 0 项目设置为使用 Azure AD 进行身份验证 使用 VS2017 中使用 OIDC 的标准 Azure AD 身份验证模板 一切工作正常 应用程序返回到基本 url 并在身份验证成功后运行 Hom
  • 如何让 Hadoop 使用我系统上的所有核心?

    我有一个32核的系统 当我使用 Hadoop 运行 MapReduce 作业时 我从未看到 java 进程使用超过 150 CPU 根据 top 并且通常保持在 100 左右 它应该接近 3200 我需要更改哪些属性 以及在哪个文件中 才能
  • 将自定义 Soap 标头添加到 Web 服务请求

    我已经使用 apache axis2 为 Web 服务生成了存根 并且我想将自定义肥皂头添加到请求中 我希望肥皂头看起来像这样
  • OpsHub 迁移似乎不再正常运行

    大约一个月前 我对一些本地 TFS 项目到在线 Visual Studio 进行了测试迁移 在大多数情况下 一切都有效 变更集已迁移 显示与本地相同的签入用户 并带有显示原始签入日期 用户和变更集 ID 的注释 与工作项相同 我会查看历史记
  • 在 NumPy 或 PyTorch 中从矩阵获取对角线“条纹”

    我需要获得矩阵的对角线 条纹 假设我有一个大小为 KxN K gt N 的矩阵 0 1 2 3 4 5 6 7 8 9 10 11 我需要从中提取一条对角线条纹 在本例中 是通过截断原始矩阵创建的矩阵 MxV 大小 0 x x 3 4 x
  • Kubernetes Ingress - 第二个节点端口没有响应

    我在本地运行 K8S 集群 云中没有 有一个 K8S 主节点和两个工作节点 k8s master 192 168 100 100 工作节点1 192 168 100 101 工作节点2 192 168 100 102 我使用 kuberne