我按照本指南https://coreos.com/kubernetes/docs/latest/deploy-workers.html设置了Kubernetes网络,当我运行Dashboard或DNS附加组件时,他们在25秒后导致了crashloopbackoff。然后我跟着这个https://github.com/kubernetes/dashboard/blob/master/docs/user-guide/troubleshooting.md,当我执行
时超时kubectl exec test-701078429-s5kca - curl -k https://10.3.0.1
请注意,如果我执行kubectl exec test-701078429-s5kca - curl -k https://192.168.3.240它有效(公共IP)
如果我在主节点上执行curl -k https://10.3.0.1也可以工作。
所以问题是我的Kubelets在10.2.0.0/16上无法与10.3.0.1/24上的api服务器通信,这表明它可能是一个kube代理问题。仅供参考:我可以使用10.2.x.x成功地从一台机器上的一个节点内部ping到另一台机器上的另一个节点
答案 0 :(得分:0)
问题是kubelets中的配置问题/etc/kubernetes/manifests/kube-proxy.yaml
这一行 - --master = https://需要https://我只有IP 192.168.3.220。以下是我的工作kube-proxy.yaml
L <- lapply(testdata[-1], function(x) ave(x, testdata[[1]], FUN = function(x) x - min(x)))
replace(tesdata, -1, L)
这个指南很棒,在这方面有点误导,就像之前的/etc/systemd/system/kubelet.service前面的代码片段一样,它有--api-servers = https:// $ {MASTER_HOST} \与https://一起显示/etc/kubernetes/manifests/kube-proxy.yaml的yaml - --master = $ {MASTER_HOST}没有https://前缀