您好,登錄后才能下訂單哦!
之前在kubernetes中完成的所有操作都是通過(guò)命令行工具kubectl完成的,為了提供更豐富的用戶體驗(yàn),kubernetes還開發(fā)了一個(gè)基于web的用戶界面(Dashboard)。用戶可以使用Dashboard部署容器化的應(yīng)用,還可以監(jiān)控應(yīng)用的狀態(tài),執(zhí)行故障排查以及管理kubernetes中各種資源。
在kubernetes Dashboard中可以查看集群中應(yīng)用的運(yùn)行狀態(tài),也能夠創(chuàng)建和修改各種kubernetes資源(比如Deployment,Job,Daemonset等等),用戶可以對(duì)Deployment實(shí)現(xiàn)彈性伸縮,執(zhí)行滾動(dòng)升級(jí),重啟pod或者使用向?qū)?chuàng)建新的應(yīng)用。
可以說(shuō),kubernetes Dashboard提供了kubectl的絕大部分功能。
Dashboard 同時(shí)展示了kubernetes集群中的資源狀態(tài)信息和所有報(bào)錯(cuò)信息。
官方參考文檔:https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/
GitHub項(xiàng)目下載地址:https://github.com/kubernetes/dashboard
kubernetes 默認(rèn)沒有部署Dashboard,可通過(guò)以下命令下載:
#將yaml文件下載到本地:
[root@master dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml
#修改yaml文件:
由于yaml文件中默認(rèn)指定下載地址是國(guó)外的鏡像,由于國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境限制,我們通過(guò)阿里云鏡像站進(jìn)行下載。
因?yàn)閟ervice是ClusterIP類型,為了使外部應(yīng)用能夠方便使用,修改成NodePort類型。
##保存退出后,執(zhí)行kubectl apply -f 創(chuàng)建dashboard:
##查看pod和service的狀態(tài)(dashboard會(huì)在kube-system 命令空間中創(chuàng)建自己的pod和service):
[root@master dashboard]# kubectl get pod -n kube-system | grep dashboard
kubernetes-dashboard-6cfb7d8f54-rp9nd 1/1 Running 0 2m23s
[root@master dashboard]# kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 94d
kubernetes-dashboard NodePort 10.108.35.182 <none> 443:32134/TCP 3m8s
#此時(shí)已經(jīng)為service分配了32134端口,注意是443端口(https)
通過(guò)火狐瀏覽器訪問(wèn)網(wǎng)址:https://172.16.1.30:32134/ 進(jìn)入后界面如下:
可以看到Dashboard支持kubeconfig和Token兩種認(rèn)證方式,本文選用Token的方式登錄,kubeconfig登陸方式可以參考文檔:http://note.youdao.com/noteshare?id=b0523244024d563cdc1bf7c8f7d6083c&sub=A8921821A7BE4CE4BC36B1DC86966460
通過(guò)Token的方式登錄:
1)創(chuàng)建一個(gè)dashboard管理用戶:
[root@master dashboard]# kubectl create serviceaccount dashboard-admin -n kube-system
serviceaccount/dashboard-admin created
2)綁定用戶為集群管理用戶:
[root@master dashboard]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
clusterrolebinding.rbac.authorization.k8s.io/dashboard-cluster-admin created
3)獲取用戶的Token:
[root@master dashboard]# kubectl get secrets -n kube-system | grep dashboard-admin
dashboard-admin-token-4gdsc kubernetes.io/service-account-token 3 4m17s
4)查看該token的詳細(xì)信息:
[root@master dashboard]# kubectl describe secrets -n kube-system dashboard-admin-token-4gdsc
##把獲取到的Token復(fù)制到登錄界面的Token輸入框中:
##登陸成功后的web界面如下所示:
1,Dashboard界面結(jié)構(gòu)
Dashboard的界面很簡(jiǎn)潔,分為三個(gè)大的區(qū)域:
1)頂部操作區(qū):在這里用戶可以搜索集群中的資源,創(chuàng)建資源或退出。
2)左邊導(dǎo)航菜單: 通過(guò)導(dǎo)航菜單可以查看和管理集群中的各種資源,菜單項(xiàng)按照資源的層級(jí)分為兩類:
Cluster 級(jí)別的資源:
NameSpace 級(jí)別的資源:
默認(rèn)顯示的是default 的NameSpace,大家可以根據(jù)對(duì)應(yīng)的Namespace進(jìn)行切換。
3)中間主體區(qū): 在導(dǎo)航菜單中點(diǎn)擊了某類資源,中間主體區(qū)就會(huì)顯示該資源的所有實(shí)例,比如點(diǎn)擊service資源
2,典型使用場(chǎng)景
接下來(lái)實(shí)踐幾個(gè)Dashboard的典型使用場(chǎng)景:
1,部署Deployment:
1)點(diǎn)擊頂部操作區(qū)的 + CREATE按鈕:
用戶可以直接輸入要部署應(yīng)用的名字,鏡像,副本數(shù)等信息;用戶也可以YAML配置文件,如果是上傳YAML文件,則可以創(chuàng)建任意類型的資源,不僅僅是Deployment。
2,在線對(duì)資源進(jìn)行操作:
對(duì)于每種資源,用戶都可以點(diǎn)擊右邊的下拉菜單執(zhí)行各種操作(刪除,查看,編輯等)
##比如點(diǎn)擊View/edit YAML 可直接修改資源的配置,保存后立即生效,其效果與kubectl edit一樣。
3,查看資源的詳細(xì)信息
點(diǎn)擊某個(gè)資源實(shí)例的名字,可以查看到詳細(xì)信息,其效果與kubectl describe一樣。
4,查看Pod日志
在Pod或者父資源(DaemonSet,ReplicaSet等)頁(yè)面中點(diǎn)擊上方的“LOGS”按鈕,可以查看Pod的日志(查看器可以查看同一個(gè)pod的不同容器的日志),其效果與在命令行執(zhí)行kubectl logs一樣。
小結(jié):
以上就是kubernetes Dashboard的安裝和使用方法。Dashboard能完成日常管理的大部分工作,可以作為命令行工具kubectl的補(bǔ)充。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。