淘先锋技术网

首页 1 2 3 4 5 6 7

一、Dashboard简介

在这里插入图片描述

Kubernetes Dashboard是一个Web UI,用于管理Kubernetes集群中的应用程序和资源。它提供了一个可视化的界面,可以方便地查看和管理Kubernetes集群中的各种资源,如Pod、Deployment、Service、ConfigMap等。Dashboard还提供了一些高级功能,如日志查看、资源监控、命名空间管理等。
官方GitHub
官方下载地址 网盘下载地址

二、Dashboard部署安装

1、下载文件并执行,国内仓库下:

wget https://gitee.com/qinziteng/K8S/raw/master/YMAL/recommended.yaml

2、默认 Dashboard 只能在集群内部访问 添加Service 类型:

vim recommended.yaml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdGaQxFF-1682320135592)(D:\MD归档文档\IMG\image-20230423135247629.png)]

3、修改完成确认无误后执行文件

kubectl apply -f recommended.yaml

4、查看状态 默认在 kubernetes-dashboard 名称空间下:

kubectl get pods -n kubernetes-dashboard

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zLYvY71n-1682320135592)(D:\MD归档文档\IMG\image-20230423120036295.png)]

5、查看Service暴露端口,我们使用这个端口进行访问:

kubectl get svc -n kubernetes-dashboard

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cdlFlUK2-1682320135592)(D:\MD归档文档\IMG\image-20230423135336569.png)]

6、访问页面

https://IP+SVCPort

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WbTPa9bQ-1682320135592)(D:\MD归档文档\IMG\image-20230423143845697.png)]

三、配置Dashboard登入用户

1、通过Token令牌登入

1、创建一个 ClusterRoleBinding 对象,并赋予cluster-admin权限,即访问整个集群的权限,包括查看和修改所有资源的权限

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard

命令参数解析:

  • create:创建资源的命令
  • clusterrolebinding:资源类型,表示创建一个 ClusterRoleBinding 对象
  • dashboard-cluster-admin:ClusterRoleBinding 对象的名称
  • clusterrole=cluster-admin:指定要绑定的 ClusterRole,这里是 cluster-admin,即具有完全访问权限的 ClusterRole。
  • serviceaccount=kubernetes-dashboard:kubernetes-dashboard:指定要绑定的 ServiceAccount,这里是 kubernetes-dashboard 命名空间下的 kubernetes-dashboard ServiceAccount

查看创建的secret

kubectl get secret -n kubernetes-dashboard

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G55RuFcE-1682320135593)(D:\MD归档文档\IMG\image-20230423140347841.png)]

2、获取token信息:

kubectl describe secret $(kubectl get secret -n kubernetes-dashboard|grep kubernetes-dashboard-token*|awk '{print $1}') -n kubernetes-dashboard|egrep  -w token:

查看token信息如下圈住信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WPfscWYa-1682320135593)(D:\MD归档文档\IMG\image-20230423150818110.png)]

3、将token信息复制到浏览器下面即可管理K8S集群了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOHDMtPZ-1682320135593)(D:\MD归档文档\IMG\image-20230423151001708.png)]

2、通过kubeconfig文件登入

1、创建cluster集群

cd /etc/kubernetes/pki

kubectl config set-cluster kubernetes --certificate-authority=./ca.crt --server="https://16.32.15.201:6443" --embed-certs=true --kubeconfig=/root/dashboard-admin.conf

执行完成后会 /root/dashboard-admin.conf 生成文件

cat /root/dashboard-admin.conf

2、创建credentials

TOKEN=$(kubectl get secret $(kubectl get secret -n kubernetes-dashboard|grep kubernetes-dashboard-token*|awk '{print $1}') -n kubernetes-dashboard  -o jsonpath={.data.token}|base64 -d)

kubectl config set-credentials dashboard-admin --token=$TOKEN --kubeconfig=/root/dashboard-admin.conf

3、创建context

kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/dashboard-admin.conf

4、切换context的current-context是dashboard-admin@kubernetes

kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/dashboard-admin.conf

5、把 /root/dashboard-admin.conf 这个文件下载到本地,之后上传到WEB页面登入即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VizE88k4-1682320135594)(D:\MD归档文档\IMG\image-20230424144253809.png)]

四、Dashboard创建容器

1、登入上dashboard后点击加号进行添加,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5uY6BEZa-1682320135594)(D:\MD归档文档\IMG\image-20230424145526974.png)]

2、等待Pod全部启动后,查看Service映射端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aeli0IS7-1682320135594)(D:\MD归档文档\IMG\image-20230424150729067.png)]

3、通过映射端口访问网页

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-583XQqOr-1682320135595)(D:\MD归档文档\IMG\image-20230424150834674.png)]

五、扩展

如果是k8s1.24版本以上包括1.24版本创建是不会自动创建token,需要手动创建一下,如下配置:

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
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: kubernetes-dashboard
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin
  namespace: kubernetes-dashboard
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile

执行一下:

kubectl apply -f admin.yml

创建token,将token复制到WEB页面即可。

kubectl create token admin  --namespace kubernetes-dashboard

在这里插入图片描述

OK,至此结束!