前面章節 Kubernetes 所有的操作我們都是通過命令行工具
kubectl
完成的。為了提供更豐富的用戶體驗,Kubernetes 還開發了一個基於 Web 的 Dashboard,用戶可以用 Kubernetes Dashboard 部署容器化的應用、監控應用的狀態、執行故障排查任務以及管理 Kubernetes 各種資源。
在 Kubernetes Dashboard 中可以查看集群中應用的運行狀態,也能夠創建和修改各種 Kubernetes 資源,比如 Deployment、Job、DaemonSet 等。用戶可以 Scale Up/Down Deployment、執行 Rolling Update、重啟某個 Pod 或者通過向導部署新的應用。Dashboard 能顯示集群中各種資源的狀態以及日志信息。
可以說,Kubernetes Dashboard 提供了 kubectl
的絕大部分功能,大家可以根據情況進行選擇。
1.Dashboard安裝
Kubernetes 默認沒有部署 Dashboard,可通過如下命令安裝:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Dashboard 會在 kube-system
namespace 中創建自己的 Deployment 和 Service。
執行了配置半天pod起不來
查看日志
[root@k8s-master k8s]# kubectl describe pods --namespace=kube-system kubernetes-dashboard-77fd78f978-v6zcx
不能科學上網導致鏡像pull失敗,那就在能下載鏡像的地方下載然后將鏡像改成需要的名字(所有節點都要執行)
[root@k8s-master k8s]# docker pull mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 v1.10.0: Pulling from mirrorgooglecontainers/kubernetes-dashboard-amd64 d66237a56abc: Pull complete Digest: sha256:e4b764fa9df0a30c467e7cec000920ea69dcc2ba8a9d0469ffbf1881a9614270 Status: Downloaded newer image for mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 [root@k8s-master k8s]# docker images|grep kubernetes-dashboard mirrorgooglecontainers/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 2 months ago 122MB [root@k8s-master k8s]# docker tag mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
[root@k8s-master k8s]# docker rmi mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0
指定刪除重新apply一下配置
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Dashboard 會在 kube-system
namespace 中創建自己的 Deployment 和 Service。
因為 Service 是 ClusterIP
類型,為了方便使用,我們可通過 kubectl --namespace=kube-system edit service kubernetes-dashboard
修改成 NodePort
類型。
保存修改,此時已經為 Service 分配了端口 31551。
創建rdbc授權文件kubernetes-dashboard-rbac.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system
kubectl apply -f kubernetes-dashboard-rbac.yaml #查看admin-user用戶token kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') #復制token,在瀏覽器上選擇令牌方式 使用火狐瀏覽器,https://ip:port