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