因为启动dashboard报CrashLoopBackOff错误,尝试使用logs去查看日志,结果报错,错误如下:
[root@localhost ~]# kubectl -s http://192.168.37.130:8080 logs kubernetes-dashboard-v1.4.0-vceyf --namespace=kube-system Using HTTP port: 9090 Using apiserver-host location: http://127.0.0.1:8080 Creating API server client for http://127.0.0.1:8080 Error while initializing connection to Kubernetes apiserver. This most likely means that the cluster is misconfigured (e.g., it has invalid apiserver certificates or service accounts configuration) or the --apiserver-host param points to a server that does not exist. Reason: Get http://127.0.0.1:8080/version: dial tcp 127.0.0.1:8080: getsockopt: connection refused
但是使用curl http://192.168.37.130:8080却是可以访问通的
[root@localhost ~]# curl http://192.168.37.130:8080 { "paths": [ "/api", "/api/v1",
...."/version" ] }[root@localhost ~]#
实在很奇怪,
首先怀疑是不是因为IPV6的原因导致,关闭IPV6
编辑文件/etc/sysctl.conf, vi /etc/sysctl.conf 添加下面的行: net.ipv6.conf.all.disable_ipv6 =1 net.ipv6.conf.default.disable_ipv6 =1 如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行。 net.ipv6.conf.enp0s3.disable_ipv6 =1 保存并退出文件。 执行下面的命令来使设置生效。 sysctl -p
但再次重启服务,也还是无法访问,原因不在此。
从网上看这篇文章:http://blog.csdn.net/qingchi0/article/details/42538549,说
监听的接口,如果配置为127.0.0.1则只监听localhost,配置为0.0.0.0会监听所有接口,这里配置为0.0.0.0。
尝试进行修改
把前文安装kube-apiserver的配置文件/etc/sysconfig/kubernets/kube-apiserver修改为
INSECURE_BIND_ADDRESS="--insecure-bind-address=0.0.0.0"
重启服务,发现这次连本来能访问的localhost:8080都访问不通了,说明无效,再次尝试将INSECURE_BIND_ADDRESS改为
INSECURE_BIND_ADDRESS="--address=0.0.0.0"
重启服务,
curl 127.0.0.1:8080
curl localhost:8080
curl 192.168.37.130:8080
三种方式访问都么有问题。
本以为按照127.0.0.1能够访问通了,kubectl -s http://192.168.37.130:8080 logs kubernetes-dashboard-v1.4.0-vceyf --namespace=kube-system就能看到结果了,但结果依旧,那么就应该是提示中的另外一个问题了,
This most likely means that the cluster is misconfigured (e.g., it has invalid apiserver certificates or service accounts configuration)
这个就应该是证书的问题了,这个问题比较复杂,后面在系统的去研究下