我创建了一个 k8s 集群 v1.26.0,kubeadm
并使用 Calico 作为 CNI。我使用 helm chart 部署 calico,并按照 Calico 官方页面和 chart 中的步骤进行操作。
容器引擎是containerd
。节点 Node 是 Centos 8,我们按照此线程建议 进行iptables
配置:firewalld
关联
问题是,当我们尝试nslookup
使用 dnsutils pod 运行时。它不起作用。当 pod 尝试到达时,我收到超时错误kube-dns.kube-system
。如果 dnsutils pod 安排在运行的节点上coredns
,我们可以正常 nslookup 服务。我们可以直接 ping pod ip,但是当我们尝试 {Service Name}.{Namespace} 时,这在安排在与运行 coredns 的节点不同的节点上的任何 pod 上都不起作用。
我们检查了 Calico 所需的所有防火墙规则,所有所需端口均已打开并可访问。我们检查了kube-proxy
它--v=4
,它列出了所有服务名称和集群 IP。我们检查了iptables
它,似乎有如下规则调试服务页面来自 Kubernetes 官方网站。
我已经为此奋斗了 4-5 天,我真的需要一些建议来调试或了解我们的集群中到底发生了什么。
答案1
卡了一个星期后,我们尝试禁用节点上的防火墙。然后一切都正常了。
谢谢。