侧边栏壁纸
博主头像
DevOpsHub博主等级

生活百般滋味,人生需要笑对

  • 累计撰写 22 篇文章
  • 累计创建 2 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

部署和访问 Kubernetes 仪表板(Dashboard)

admin
2023-12-17 / 0 评论 / 0 点赞 / 51 阅读 / 4712 字
温馨提示:
本文最后更新于 2023-12-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

安装环境

kubernetes版本:V1.25.9

kubernetes-Dashboard版本:v2.7.0

安装步骤

部署 Dashboard UI

默认情况下不会部署 Dashboard。可以通过以下命令部署:

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

为了集群外能够访问,需要将service类型修改为NodePort,如下:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort  # 新增
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30009  #新增
  selector:
    k8s-app: kubernetes-dashboard

访问 Dashboard 用户界面

使用集群任意node节点的IP:port,port为步骤"部署 Dashboard UI"新增的nodePort字段的值。

k8s

为了保护集群数据,默认情况下,Dashboard 会使用最少的 RBAC 配置进行部署。 当前,Dashboard 仅支持使用 Bearer 令牌登录。

创建服务帐户

首先使用命名空间中的名称创建服务帐户。admin-userkubernetes-dashboard

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

创建 ClusterRoleBinding

在大多数情况下,在使用 或任何其他常用工具预配集群后,集群中已存在 。我们可以使用它并只为我们的 . 如果该角色不存在,则需要先创建此角色并手动授予所需的权限。kopskubeadmClusterRolecluster-adminClusterRoleBindingServiceAccount

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

获取 ServiceAccount 的持有者令牌

现在我们需要找到可用于登录的令牌。执行以下命令:

kubectl -n kubernetes-dashboard create token admin-user

它应该打印如下内容:

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXY1N253Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwMzAzMjQzYy00MDQwLTRhNTgtOGE0Ny04NDllZTliYTc5YzEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.Z2JrQlitASVwWbc-s6deLRFVk5DWD3P_vjUFXsqVSY10pbjFLG4njoZwh8p3tLxnX_VBsr7_6bwxhWSYChp9hwxznemD5x5HLtjb16kI9Z7yFWLtohzkTwuFbqmQaMoget_nYcQBUC5fDmBHRfFvNKePh_vSSb2h_aYXa8GV5AcfPQpY7r461itme1EXHQJqv-SN-zUnguDguCTjD80pFZ_CmnSE1z9QdMHPB8hoB4V68gtswR1VLa6mSYdgPwCHauuOobojALSaMc3RH7MmFUumAgguhqAkX3Omqd3rJbYOMRuMjhANqd08piDC3aIabINX6gP5-Tuuw2svnV6NYQ

获取 ServiceAccount 的长期持有者令牌

我们还可以创建一个带有 secret 的 token,该 token 绑定了服务帐户,该 token 将保存在 Secret 中:

apiVersion: v1
kind: Secret
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: "admin-user"   
type: kubernetes.io/service-account-token  

创建 Secret 后,我们可以执行以下命令来获取保存在 Secret 中的 Token:

kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d

访问仪表板

现在复制令牌并将其粘贴到登录屏幕上的字段中。Enter token
dashboard-signin.png
单击按钮,仅此而已。您现在以管理员身份登录。Sign in
ui-dashboard.png

评论区