總算在成功的部署了k8s之后,我打算再部署一下k8s的web UI:dashboard.
網(wǎng)上主要的部署方法都是一些IT用yaml文件去生成的dashboard服務。然后所有的文章或多或少的都有點問題,不是步驟不一樣了進行不下去了,內(nèi)容或文件過期,或都就是作者認為某些內(nèi)容是大家都懂的于是怱略了一些步驟,但是我已經(jīng)進行不下去了。
首先是拉鏡像的問題,dashboard的鏡像依舊是在“某個外國知名搜索引擎”服務器上的沒法直接拉下來,所以依舊使用從鏡像服務器上下載之后再用docker tag命令更改名稱的方法來解決問題。
官方的鏡像地址是:k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
我找了一個鏡像的地址:mirrorgooglecontainers? (下載命令為:docker pull mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1)
接下來是改名
docker?tag?mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1?k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 docker?rmi?mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
然后有了鏡像之后,開啟dashboard的pod。網(wǎng)上也有各種yaml文件版本,我試下來最靠譜的是以下文件。將它命名為kubernetes-dashboard.yaml。
kind:?Service apiVersion:?v1 metadata: ??labels: ????k8s-app:?kubernetes-dashboard ??name:?kubernetes-dashboard ??namespace:?kube-system spec: ??type:?NodePort ??ports: ????-?port:?443 ??????targetPort:?8443 ??????nodePort:?30001 ??selector: ????k8s-app:?kubernetes-dashboard
其中30001可以自己改,在k8s允許的范圍內(nèi)內(nèi)改成自己想要的端口。這個端口是應用于物理機上的而不是pod網(wǎng)絡。非k8s集群的集群可以通過這個端口去訪問(畢竟還是給瀏覽器去訪問的。)我已開始沒改端口,但是沒有意識到30001端口已經(jīng)被其他的服務給占掉了,所以yaml文件運行后沒有起到起到什么作用。我在這里選了一個30012端口。
用這個文件來安裝dashboard
kubectl?create?-f?kubernetes-dashboard.yaml
接下來是用瀏覽器登陸,首先找到dashboard是在那個節(jié)點上運行的,
kubectl?get?pods?--all-namespaces?-o?wide?|?grep?dashboard?|?awk?'{print?$8}'
然后在瀏覽器里訪問這個node節(jié)點。網(wǎng)址要加上https://<節(jié)點的ip或域名>:<前面yaml文件中的nodePort的值>。我用的瀏覽器是chrome,立即顯示了“證書不受信任”的頁面,而且高級選項里繼續(xù)選項也沒有,就無法訪問了。上網(wǎng)查了一下這個問題的解決方法,原因是證書過期了(0001年1月3日開的證書,整整過期2000+年),只有firefox能夠添加例外。而真正的解決方法是替換證書。在網(wǎng)上找到最好的方法如下文。
mkdir?key?&&?cd?key openssl?genrsa?-out?dashboard.key?2048? openssl?req?-new?-out?dashboard.csr?-key?dashboard.key?-subj?'/CN=172.19.0.48' openssl?x509?-req?-in?dashboard.csr?-signkey?dashboard.key?-out?dashboard.crt? kubectl?delete?secret?kubernetes-dashboard-certs?-n?kube-system kubectl?create?secret?generic?kubernetes-dashboard-certs?--from-file=dashboard.key?--from-file=dashboard.crt?-n?kube-system??#新的證書 kubectl?delete?pod?kubernetes-dashboard-746dfd476-b2r5f?-n?kube-system????#重啟服務
其中有一些地方要根據(jù)實際情況改動,例如第三句的IP地址要改成node節(jié)點的,還有最后一句刪除pod名字也得改一下。獲取的命令為
kubectl?get?pods?--all-namespaces?-o?wide?|?grep?dashboard?|?awk?'{print?$2}'
然后在瀏覽器里就可以跳過證書受信問題了。接下來的問題是登陸界面,有兩種登陸的方式,個人覺得還是token這種方便一點。網(wǎng)上也有高手總結了一下獲取token命令的方法。
kubectl?-n?kube-system?describe?$(kubectl?-n?kube-system?get?secret?-n?kube-system?-o?name?|?grep?namespace)?|?grep?token
將獲取的token復制到瀏覽器的界面中,就可以登陸dashboard了。
分享標題:K-2Kubernets安裝dashboard踩坑日志-創(chuàng)新互聯(lián)
當前路徑:http://www.rwnh.cn/article16/copcdg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、企業(yè)網(wǎng)站制作、定制開發(fā)、軟件開發(fā)、品牌網(wǎng)站建設、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)