kubernetes實戰篇之通過api-server訪問dashboard

周國通發表於2019-07-02

系列目錄

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

相關文章