我用kubeadm
创建了一个k8s Cluster v1.26.0,并使用Calico作为CNI。我用Helm Chart部署Calico,并按照Calico官方页面和图表的步骤进行操作。
容器引擎是containerd
。节点Node是Centos 8,我们在firewalld
中配置了iptables
,如下所示:Link
问题是,当我们尝试使用dnsutils pod运行nslookup
时。它不起作用。当pod尝试访问kube-dns.kube-system
时,我得到一个超时错误。如果在运行coredns
的节点上调度了dnsutils pod,则可以正常nslookup服务。我们可以直接ping通pod ip,但是当我们尝试{Service Name}.{Namespace}时,这在调度在与运行coredns的节点不同的节点上的任何pod上都不起作用。
我们检查了Calico所需的所有防火墙规则,并且所有所需端口都是开放和可访问的。我们用--v=4
检查了kube-proxy
,它列出了其中的所有服务名称和集群ip。我们检查了iptables
,它似乎有来自Kubernetes官方网站的Debug Service page规则。
我已经为此挣扎了4-5天,现在我真的需要一些建议来调试或了解这是真的在我们的集群。
1条答案
按热度按时间68bkxrlz1#
我想你应该在每个节点上运行coredns。至少,这是我所有集群的设置方式。