我正在尝试使用 Kubeadm 使用 Calico (IPIP) 部署 Kubernetes。部署完成后,我正在使用这些清单部署 Calico
kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
在应用它之前,我正在编辑 CALICO_IPV4POOL_CIDR 并将其设置为 10.250.0.0/17 以及使用 command kubeadm init --pod-cidr 10.250.0.0/17
。
几秒钟后,CoreDNS pod(例如获取地址 10.250.2.2)开始重新启动,错误为 10.250.2.2:8080 连接被拒绝。
现在有点挖掘:
从集群中的任何节点ping 10.250.2.2
工作并到达 pod(pod net 命名空间中的 tcpdump 显示它)。
来自不同的 pod(在不同的节点上)curl 10.250.2.2:8080
效果很好
从任何节点到curl 10.250.2.2:8080
失败,连接被拒绝
因为它是 coredns pod,它在 53 上同时监听 udp 和 tcp,所以我从节点尝试了 netcat
nc 10.250.2.2 53
- 连接被拒绝
nc -u 10.250.2.2 55
- 有效
现在我已经为端口 8080 的源节点上的每个接口进行了 tcpdump,并且 curl 到 CoreDNS pod 甚至似乎都没有离开节点......所以 iptables?
我也试过编织、运河和法兰绒,似乎都有同样的问题。
我现在已经没有想法了......请指点?