首页 > 解决方案 > Kubernetes pod 内的 Internet 连接无法正常工作

问题描述

无法从吊舱内连接到互联网

我的系统规格包括:我使用 2 个系统创建了一个 Kubernetes 集群,一个作为主节点,另一个作为工作节点。

操作系统:NAME="Red Hat Enterprise Linux" VERSION="8.3 (Ootpa)" ID="rhel"。

我使用以下链接( https://dzone.com/articles/kubernetes-installation-in-redhat-c ​​entos )安装了集群的 Kuberenetes

我已经尝试过 CALICO pod 网络和 Flannel pod 网络,因为这两个问题都发生了。无法从吊舱内连接到互联网

有关更多详细信息,请参见下图

在此处输入图像描述

您可以看到所有的 pod 都已启动并运行。

我的 coredns pod 也已启动并运行,相应的服务也已启动,请查看下图

在此处输入图像描述

调试

对于调试,我尝试使用此链接(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

每当我执行 nslookup 时,它都会显示错误消息(;;连接超时;无法访问服务器,命令以退出代码 1 终止)

请看下面的图片

在此处输入图像描述

谁能告诉确切的问题出在哪里。为什么从吊舱内部我无法连接到互联网

任何帮助将不胜感激谢谢。

标签: dockerkuberneteskubernetes-podkubernetes-servicekube-proxy

解决方案


此类问题有两种可能性:

  • 这可能不是 CoreDNS 本身的问题,而是 Kubernetes 网络问题,即到 ClusterIP 的流量未正确定向到 Pod。可能是 kube-proxy 对此负责。

    这是关于故障排除服务的Kubernetes 指南。

  • 另一个对于 rhel/centos 发行版非常常见的问题是nftablesbacked 与 kubernetes 不兼容的问题。nftables可作为内核iptables子系统的现代替代品。

    解决方法是使用 Calico,因为从 v3.8.1+ 开始,CNI 可以在 NFT 模式下使用 iptables 的主机上运行。设置该 FELIX_IPTABLESBACKEND=NFT 选项将告诉 Calico 使用 nftables 后端。目前,这需要明确设置。

  • 最后,您的 Pod 网络很可能与主机网络重叠。参考:安装 Pod 网络插件


推荐阅读