我有一个kubernetes集群(v1.10)和法兰绒作为cni。使用默认设置,设置工作正常(使用kubeadm),但是pod无法通过服务IP连接到自身。
尝试将发夹模式设为“混杂桥”但是抱怨抱怨:
Hairpin mode set to "promiscuous-bridge" but kubenet is not enabled, falling back to "hairpin-veth"
不确定发生了什么。经过这个https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/#a-pod-cannot-reach-itself-via-service-ip但没有帮助。有什么指针吗?
答案 0 :(得分:1)
就我而言,问题不是如下所述禁用防火墙服务。我的核心dns连播不断崩溃,并显示错误 connect-没有通往主机的路由
https://github.com/rancher/rancher/issues/6139
按上述在每个节点上运行以下命令
答案 1 :(得分:0)
默认的法兰绒配置没有将HairpinMode设置为true。
https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
在flannel配置中将hairpinMode设置为true解决了这个问题。配置更改如下:
kind: ConfigMap
apiVersion: v1
metadata:
name: kube-flannel-cfg
namespace: kube-system
labels:
tier: node
app: flannel
data:
cni-conf.json: |
{
"name": "cbr0",
"type": "flannel",
"delegate": {
"hairpinMode": true,
"isDefaultGateway": true
}
}
net-conf.json: |
{
"Network": "10.244.0.0/16",
"Backend": {
"Type": "vxlan"
}
}
完整的法兰绒配置在这里:
使用以下命令代替默认的kubectl命令来应用法兰绒cni:
kubectl apply -f https://gist.githubusercontent.com/phagunbaya/2a53519a9427ba0623244f1680a5b5ff/raw/13ada0d6dd92388c8c5aae93bfb1ccaf9c79f60b/flannel-0.9.1.yaml