我按照本指南https://coreos.com/kubernetes/docs/latest/deploy-workers.html设置了一个Kubernetes网络,当我运行Dashboard或DNS附加组件时,它们在25秒后导致崩溃回退。然后,我遵循这个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 it worked (公网IP)
另外,如果我执行curl -k,那么主节点上的https://10.3.0.1也会正常工作。
所以问题是10.2.0.0/16上的Kubelets无法与10.3.0.1/24上的api服务器通信,这表明这可能是kube代理问题。仅供参考:我可以使用10.2.x.x成功地从一台计算机上的一个节点ping另一台计算机上的另一个节点
发布于 2017-05-17 20:26:18
问题是kubelets /etc/kubernetes/manifests/kube-proxy.yaml中的配置问题
-master= https://这一行需要https://,而我的IP是192.168.3.220。下面是我的工作kube-proxy.yaml
apiVersion: v1
kind: Pod
metadata:
name: kube-proxy
namespace: kube-system
spec:
hostNetwork: true
containers:
- name: kube-proxy
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
command:
- /hyperkube
- proxy
- --master=https://192.168.3.240
- --kubeconfig=/etc/kubernetes/worker-kubeconfig.yaml
- --proxy-mode=iptables
securityContext:
privileged: true
volumeMounts:
- mountPath: /etc/ssl/certs
name: "ssl-certs"
- mountPath: /etc/kubernetes/worker-kubeconfig.yaml
name: "kubeconfig"
readOnly: true
- mountPath: /etc/kubernetes/ssl
name: "etc-kube-ssl"
readOnly: true
volumes:
- name: "ssl-certs"
hostPath:
path: "/usr/share/ca-certificates"
- name: "kubeconfig"
hostPath:
path: "/etc/kubernetes/worker-kubeconfig.yaml"
- name: "etc-kube-ssl"
hostPath:
path: "/etc/kubernetes/ssl"该指南非常棒,只是在这方面有点误导,因为在它之前的/etc/systemd/system/kubelet.service的直接代码片段中--api-servers=https://${MASTER_HOST} \,其中有/etc/kubernetes/manifests/kube-proxy.yaml的yaml -master=${MASTER_HOST},没有https://前缀
https://stackoverflow.com/questions/44024850
复制相似问题