【问题标题】:Kubernetes - service exposed via NodePort not available on all nodesKubernetes - 通过 NodePort 公开的服务并非在所有节点上都可用
【发布时间】:2016-11-15 16:39:13
【问题描述】:

我有一个通过 NodePort 公开的 nginx 服务。根据文档,我现在应该可以在$NODE_IP:$NODE_PORT 上为我的所有 K8 工作程序 IP 访问该服务。但是,我只能在托管实际 nginx pod 的节点上通过 curl 访问该服务。知道为什么吗?

我确实使用 netstat 验证 kube-proxy 正在侦听所有主机上的 $NODE_PORT。不知何故,请求并没有被 kube-proxy 转发到实际的 pod。

【问题讨论】:

  • 如果您正在运行 kube dns,您始终可以通过 servicename.namespace.svc.cluster.local 访问您的服务
  • @MattRickard - 在这种情况下,我希望将服务暴露在 K8 之外,以供其他非 K8 托管服务使用。

标签: kubernetes


【解决方案1】:

事实证明,这是与工作人员关联的安全组的问题。我只打开了--service-node-port-range 中的端口。这还不够,因为我在 80 端口上部署了 nginx,而 kube-proxy 尝试将请求转发到 80 端口上的 pod 的 IP,但被阻止了。

【讨论】:

猜你喜欢
  • 2018-07-04
  • 2019-07-26
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 2019-11-02
  • 2022-08-16
  • 2023-02-01
相关资源
最近更新 更多