Kubernetes 1.17.0管理界面Dashboard 2

Dashboard是Kubernetes的基本Web管理工具。Dashboard 1.x系列只能用於Kubernetes 1.16之前的版本。從Kubernetes 1.16開始,須要使用Dashboard 2,其部署方式有較大的變化。這裏介紹在Kubernetes 1.17.0來部署管理界面Dashboard 2的方法和步驟。git

一、安裝服務

若是尚未安裝CNI驅動,可使用下面的命令來裝個flannel虛擬網絡驅動。github

先獲取鏡像:docker

docker pull quay.io/coreos/flannel:v0.11.0-amd64

而後,安裝:api

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

拉取Dashboard的images:網絡

docker pull kubernetesui/metrics-scraper:v1.0.1
docker pull kubernetesui/dashboard:v2.0.0-beta8
  • 注意,有幾個變化:
    • 如今的鏡像是兩個,之前只有一個。
    • 命名空間從kube-system變到kubernetes-dashboard。
    • 受權方式變了,下面將介紹具體方法。

二、訪問權限設置

包括建立服務帳號、設置服務帳號的role、獲取token等步驟。app

2.1 建立服務訪問帳號

建立一個Service Account,命名爲 admin-user,放在namespace kubernetes-dashboard 中。工具

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

將上面內容保存爲文件dashboard-adminuser.yaml。網站

2.2 建立ClusterRoleBinding

大部分狀況下,使用 kops 或 kubeadm 部署集羣后, ClusterRole admin-Role 已經在集羣中存在,咱們可使用它,僅須要建立 ClusterRoleBinding 到咱們的 ServiceAccount。ui

注意: apiVersion of ClusterRoleBinding 資源在不一樣的 Kubernetes 版本中多是不同的。Kubernetes v1.8以前apiVersion 是 rbac.authorization.k8s.io/v1beta1。spa

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

將上面的內容保存到文件dashboard-adminrole.yaml。

2.3 Bearer Token

首先,應用上面的兩個文件。以下:

kubectl apply -f dashboard-adminuser.yaml
kubectl apply -f dashboard-adminrole.yaml

找到 token 來登錄Dashboard的Web界面。執行下面的命令:

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

將token內容拷貝下來,在下面的 WebUI中使用。

三、訪問方式

須要將Dashboard的服務暴露出來讓客戶端訪問,包括運行代理和使用NodePort方法,還可使用Ingress等方法,這裏不介紹,能夠參考:

3.1 代理訪問模式

運行代理服務:

$ kubectl proxy

而後打開下面的鏈接:

在頁面中選擇token模式登錄,而後填入上面步驟複製的token便可。

 

3.2 NodePort模式

使用kubectl get svc/dashboardxxxxx -n kubernetes-dashboard來獲取dashboard的服務ID。

使用kubectl edit svc/dashboardxxxxx -n kubernetes-dashboard來編輯服務的參數,將網絡類型改成NodePort,並增長端口30800。

而後打開 http://localhost:30800 便可訪問。

在頁面中選擇token模式登錄,而後填入上面步驟複製的token便可。

更多參考:

相關文章
相關標籤/搜索