天天看點

k8s dashboard_終端管理K8s指令太多太費勁?試試官方的Dashboard,你100%喜歡開頭說幾句為什麼要使用 Kubernetes Dashboard?Kubernetes Dashboard 可以做什麼正式開始最後說兩句

開頭說幾句

  1. 上一篇文章我們說了官方提供的最簡便的安裝方式Kubeadm,相信小夥伴們也利用這一方式搭建起了自己的第一個K8s叢集。
  2. 今天我們來說一說如何搭建官方的Dashboard來管理我們的K8s叢集。
  3. 那後面我們還會有很多關于K8s使用方面的小知識小技巧,感興趣的小夥伴可以關注我,文章末尾我會列出我們将要談到的話題哦,記得看完!
  4. 先來個上篇文章的連結吧!!!有些軟體包在上篇文章中有說到

為什麼要使用 Kubernetes Dashboard?

  1. 看到這裡有小夥伴就要問了,我們為什麼要用Dashboard?哈哈哈,無他,唯好用爾!
  2. linux實在是有太多太多的指令了,小編的腦子根本記不住,每次都要查太費勁了,有官方提供的管理平台當然要快快用起來了。

Kubernetes Dashboard 可以做什麼

k8s dashboard_終端管理K8s指令太多太費勁?試試官方的Dashboard,你100%喜歡開頭說幾句為什麼要使用 Kubernetes Dashboard?Kubernetes Dashboard 可以做什麼正式開始最後說兩句

K8s叢集管理

k8s dashboard_終端管理K8s指令太多太費勁?試試官方的Dashboard,你100%喜歡開頭說幾句為什麼要使用 Kubernetes Dashboard?Kubernetes Dashboard 可以做什麼正式開始最後說兩句

K8s Deployments管理

基本上一目了然了吧,那我就不說了,說起來挺費勁的!

正式開始

Kubernetes Dashboard 安裝

  1. 首先呢我們先擷取一下官方提供的recommended.yaml配置檔案,不過咱這網絡一般是下載下傳不下來,回複我關鍵字k8s會提供相關所有的軟體包給大家哦!!
  2. 我們先打開recommended.yaml,找到下面這一段(紅色框内)
k8s dashboard_終端管理K8s指令太多太費勁?試試官方的Dashboard,你100%喜歡開頭說幾句為什麼要使用 Kubernetes Dashboard?Kubernetes Dashboard 可以做什麼正式開始最後說兩句

recommended.yaml

  1. 我們需要在這一段内呢添加兩對鍵值,修改後這段應該是這樣的:
kind: ServiceapiVersion: v1metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kubernetes-dashboardspec:  type: NodePort  ports:    - port: 443      targetPort: 8443      nodePort: 30443  selector:    k8s-app: kubernetes-dashboard
           
  1. 我簡單的解釋一下,我們這裡添加了type: NodePort,這個呢意思是service對外開放端口,使用者可以通過node、master節點的IP來通路該服務。那後面nodePort: 30443大家應該也就明白了是對外開放的端口号。
  2. 修改好之後我們就可以開始安裝了,上一篇文章中我們同樣為大家提供的Kubernetes Dashboard相關的鏡像,不然我們這邊還不太好下載下傳。
$ kubectl create -f recommended.yaml
           
  1. 指令執行完畢後我們就可以檢視一下對應的service、pod的狀态了
$ kubectl get pod,svc -n kubernetes-dashboard
           

建立 Kubernetes Dashboard 超級管理使用者

  1. 預設Dashboard為最小RBAC權限,我們需要添加叢集管理者的權限以友善我們從Dashboard頁面操作叢集資源。
  2. 首先我們需要建立adminuser.yaml
apiVersion: v1kind: ServiceAccountmetadata:  name: admin-user  namespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: admin-userroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:- kind: ServiceAccount  name: admin-user  namespace: kubernetes-dashboard
           
  1. 然後就是執行如下指令在叢集中建立使用者:
$ kubectl create -f adminuser.yaml
           
  1. 接下來我們就可以通路了頁面了,通路位址是:https://{YourNodeIp}:30443
  2. 你會發現他會提示我們證書不對,這是因為我們上面的recommended.yaml中為我們建立了一個空的證書。有的浏覽器甚至無法強行跳轉,這就涉及到我們下面的證書配置了!
  3. 頁面需要我們提供一個token進行登入,最長的那一段就是:
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
           

為 Kubernetes Dashboard 配置正确的域名證書

k8s dashboard_終端管理K8s指令太多太費勁?試試官方的Dashboard,你100%喜歡開頭說幾句為什麼要使用 Kubernetes Dashboard?Kubernetes Dashboard 可以做什麼正式開始最後說兩句

K8s token 登入

  1. 這裡我們要配置的是正确的域名證書哦,就像我的截圖一樣。那沒有域名的小夥伴可以使用自簽名證書哦,或者使用hosts配置也可以!
  2. 首先我們需要準備好我們的證書以及key檔案,這裡要注意了,我們的證書命名一定是dashboard.crt,我們的key命名一定是dashboard.key。通過我的實踐這是真理,具體為什麼咱也不知道,咱也不敢問(可能官方文檔裡有寫咱沒看見)。
  3. 接下來我們要檢視一下目前是否存在證書(這裡算是多此一舉)
$ kubectl get secret -n kubernetes-dashboard|grep kubernetes-dashboard-certs
           
  1. 那我們需要先删除這個證書配置,這樣我們才能添加自己的證書
$ kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard
           
  1. 删除之後呢我們,我們就要建立自己的證書了,千萬注意步驟2中的命名問題!!!這是個巨坑
$ kubectl create secret generic kubernetes-dashboard-certs --from-file="dashboard.crt" --from-file="dashboard.key" -n kubernetes-dashboard
           
  1. 證書建立好了,我們還需要重新開機pod才能生效,這裡我們直接删除pod,deployment監測到pod被删除後會自動建立一個新的
# 先檢視kubernetes-dashboard的pod名稱$ kubectl get pod -n kubernetes-dashboard# 删除該pod$ kubectl delete pod kubernetes-dashboard-7f99b75bf4-sbmdp -n kubernetes-dashboard
           

結束了!!!

  1. 至此我們的證書也搞定了,不過需要重新擷取一下token,清理一下頁面緩存。
  2. 這樣就可以正常的使用和登入了。

最後說兩句

  1. 這章節就到這裡啦,希望大家有所收獲。
  2. 後面我們還有一些關于K8s應用方面的小知識、小技巧:
    1. K8s 簡單應用(pod,deployment)
    2. 應用互相通路、對外開放通路(service,nodePort)
    3. (nfs)磁盤挂載
    4. 配置檔案(config-map)
    5. 使用K8s搭建自己的docker鏡像倉庫并且配備web-ui
  3. 有興趣的小夥伴可以關注我哦!!!
  4. 謝謝大家!!!

繼續閱讀