前面一节我们介绍了如何使用kube-proxy搭建代理访问dashboard,这样做缺点非常明显,第一可以通过http访问,第二是这种方式要启动一个后台进程,如果进程关闭了则不能够访问了,还需要手动开启proxy.另外一个问题就是可能有部分读者已经遇到了,在输入token的时候,web界面无影响,笔者在本机试的时候通过firefox无响应,通过谷歌浏览器有时候无响应,有时候偶尔会有响应.下面通过使用api-server地址来访问dashboard.
创建.kube文件夹并把admin.conf复制到此文件夹
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config注,此步骤也可以不要,只是以下的操作步骤用到$HOME/.kube/config都要换成/etc/kubernetes/admin.conf,这里是参照了这篇文章,我就和作者保持一致.
生成client-certificate-data
grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt生成client-key-data
grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key生成p12
openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-client"其中生成kubecfg.p12这一步需要输入密码,以供以后导入时使用
[root@k8s-master key]# openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-client" Enter Export Password:这里输入密码,这里是设置密码,因此可以输入你自己方便管理的密码,输入完以后要求再次确认,确认完以后就会生成一个kubecfg.p12文件.完成以后我们把kubecfg.p12复制到要访问dashboard的机器上,如果是windows机,则双击这个文件,会弹出一个安装向导,需要输入我们刚才设置的密码,输入完以后一直下一步就行了.
执行完以上操作后,打开谷歌内核浏览器,输入https://192.168.124.59:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:https/proxy就可以不用搭建proxy来访问dashboard了.(访问的时候浏览器会出现一个提示,让选择证书,点击确证就好了)
目前使用火狐会出现403 forbidden现象,切换到谷歌就行了
有的童鞋跟着以上操作可能最终也成功了,但是一脸懵,为什么要这样操作.这个地址又是哪来的,我要用记事本把这一长串地址保存起来么?
实际上以上dashboard是通过kubectl cluster-info命令获取到的
[centos@k8s-master dashboard]$ kubectl cluster-info Kubernetes master is running at https://192.168.124.59:6443 KubeDNS is running at https://192.168.124.59:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy kubernetes-dashboard is running at https://192.168.124.59:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:https/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. [centos@k8s-master dashboard]$设置证书是因为这个地址是https地址,需要生成证书来访问.