前面一節我們介紹了如何使用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地址,需要生成證書來訪問.