溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何部署kubernates dashboard

發(fā)布時(shí)間:2021-11-18 17:20:02 來(lái)源:億速云 閱讀:214 作者:柒染 欄目:云計(jì)算

如何部署kubernates dashboard,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

直接部署官方默認(rèn)的dashboard:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

官方默認(rèn)的replica是1,可以下載官方的yaml文件,按需修改后部署

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

部署成功后輸入命令查看Pod可以看到dashboard已經(jīng)部署成功

$ kubectl -n kube-system get pods

如何部署kubernates dashboard

輸入命令查看Service,會(huì)發(fā)現(xiàn)dashboard的IP地址是一個(gè)自動(dòng)分配的Cluster IP地址

$ kubectl -n kube-system get svc

如何部署kubernates dashboard

在不配置任何網(wǎng)絡(luò)策略的情況下,我們可以啟動(dòng)kube-proxy,用localhost進(jìn)行訪問(wèn)。也可以修改service增加node port后通過(guò)node的IP地址進(jìn)行訪問(wèn)。

在這里我修改了type為nodePort和指定了port

$ kubectl -n kube-system edit svc kubernetes-dashboard
apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kube-system"},"spec":{"ports":[{"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"}}}
  creationTimestamp: "2019-06-25T08:32:58Z"
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "131106"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
  uid: d65ea8d9-9723-11e9-beba-08002777dcd3
spec:
  clusterIP: 10.105.212.27
  ports:
  - nodePort: 31195
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

修改后保存,可以看到service的TYPE已經(jīng)變成NodePort,端口映射也完成了。

如何部署kubernates dashboard

使用dashboard所在node的IP地址加上映射到Node的端口號(hào)可以直接訪問(wèn)Dashboard

https://192.168.7.87:31195/

身份認(rèn)證

登陸 dashboard 的時(shí)候支持 kubeconfig 和 token 兩種認(rèn)證方式,kubeconfig 中也依賴 token 字段,所以生成 token 這一步是必不可少的。

下文分兩塊來(lái)講解兩種登陸認(rèn)證方式:

  • 為 brand 命名空間下的 brand 用戶創(chuàng)建 kubeconfig 文件

  • 為集群的管理員(擁有所有命名空間的 amdin 權(quán)限)創(chuàng)建 token

使用 kubeconfig

登陸dashboard的時(shí)候可以指定kubeconfig文件來(lái)認(rèn)證用戶權(quán)限,如何生成登陸dashboard時(shí)指定的kubeconfig文件請(qǐng)參考創(chuàng)建用戶認(rèn)證授權(quán)的kubeconfig文件。

注意我們生成的 kubeconfig 文件中沒(méi)有 token 字段,需要手動(dòng)添加該字段。

比如我們?yōu)?brand namespace 下的 brand 用戶生成了名為 brand.kubeconfig 的 kubeconfig 文件,還要再該文件中追加一行 token 的配置(如何生成 token 將在下文介紹),如下所示:

如何部署kubernates dashboard

這樣就可以使用brand.kubeconfig文件來(lái)登陸dashboard了,而且只能訪問(wèn)和操作brand命名空間下的對(duì)象。

生成 token

需要?jiǎng)?chuàng)建一個(gè) admin 用戶并授予 admin 角色綁定,使用下面的 yaml 文件創(chuàng)建 admin 用戶并賦予他管理員權(quán)限,然后可以通過(guò) token 登陸 dashbaord,該文件見(jiàn) dashboard-admin.yaml。這種認(rèn)證方式本質(zhì)上是通過(guò) Service Account 的身份認(rèn)證加上 Bearer token 請(qǐng)求 API server 的方式實(shí)現(xiàn),參考 Kubernetes 中的認(rèn)證。

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: admin
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile

執(zhí)行命令

$ kubectl create -f dashboard-admin.yaml

如何部署kubernates dashboard

執(zhí)行命令

$ kubectl -n kube-system describe secret admin-token-78bfl

如何部署kubernates dashboard

拷貝token在登錄頁(yè)面進(jìn)行登錄,可以以管理員身份進(jìn)入dashboard

也可以用命令直接提取token

$ kubectl -n kube-system get secret admin-token-78bfl -o jsonpath={.data.token}|base64 -d

看完上述內(nèi)容,你們掌握如何部署kubernates dashboard的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI