我在 VM 中运行一个单节点 Kubernetes 集群,用于开发和测试目的。我使用 Rancher Kubernetes Engine(RKE,Kubernetes 版本 1.18)来部署它,并使用 MetalLB 来启用 LoadBalancer 服务类型。Traefik 是 2.2 版,通过官方 Helm 图表(https://github.com/containous/traefik-helm-chart)部署。我部署了一些虚拟容器来测试设置(https://hub.docker.com/r/errm/cheese)。
我可以通过节点 IP 访问 Traefik 仪表板(-> MetalLB 似乎工作)。它为测试容器注册服务和路由。一切看起来都很好,但是当我尝试在浏览器中访问测试容器时,出现 502 Bad Gateway 错误。
一些探测表明,来自 pod 的出站流量似乎存在问题。当我通过 SSH 连接到节点时,我可以通过它们的服务或 pod IP 访问所有 pod。从节点到 pod 的 DNS 也可以正常工作。但是,如果我启动一个交互式busybox pod,我将无法从那里访问任何其他pod 或主机。当我wget
到任何其他容器(都在默认命名空间中)时,我只得到wget: can't connect to remote host (10.42.0.7): No route to host.
互联网上的服务器也是如此。
我没有安装任何网络策略,并且我知道默认情况下没有安装任何网络策略。
我也经历过这个:https ://kubernetes.io/docs/tasks/debug-application-cluster/debug-service
指南中的所有内容都运行良好,除了 pod 似乎没有任何网络连接。
我的 RKE 配置是标准的,除了我关闭了标准的 Nginx 入口并启用了 etcd 静态加密。
有任何想法吗?