部署dashboard极速入门

介绍说明

dashboard是一款图形化管理K8S集群的解决方案。
参考链接:
https://github.com/kubernetes/dashboard/releases?page=9

1.下载资源清
[root@master231 dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml

SVIP:
[root@master231 ~]# wget http://192.168.21.253/Resources/Kubernetes/Add-ons/dashboard/01-dashboard.yaml

2.导入镜像
wget http://192.168.21.253/Resources/Kubernetes/Add-ons/dashboard/oldboyedu-dashboard-v2.5.1.tar.gz

操作以及结果
[root@worker232 ~]# docker load -i oldboyedu-dashboard-v2.5.1.tar.gz 
[root@worker232 ~]# docker tag harbor.oldboyedu.com/oldboyedu-add-ons/dashboard:v2.5.1 harbor250.oldboyedu.com/oldboyedu-add-ons/dashboard:v2.5.1
[root@worker232 ~]# 
[root@worker232 ~]# docker push harbor250.oldboyedu.com/oldboyedu-add-ons/dashboard:v2.5.1

[root@worker232 ~]# wget http://192.168.21.253/Resources/Kubernetes/Add-ons/dashboard/oldboyedu-metrics-scraper-v1.0.7.tar.gz
[root@worker232 ~]# docker load -i oldboyedu-metrics-scraper-v1.0.7.tar.gz 
[root@worker232 ~]# docker tag harbor.oldboyedu.com/oldboyedu-add-ons/metrics-scraper:v1.0.7 harbor250.oldboyedu.com/oldboyedu-add-ons/metrics-scraper:v1.0.7
[root@worker232 ~]# 
[root@worker232 ~]# docker push harbor250.oldboyedu.com/oldboyedu-add-ons/metrics-scraper:v1.0.7

3.修改资源清单

vim 01-dashboard.yaml

  • 1.将8443的svc的类型改为LoadBalancer;
  • 2.修改2个镜像的名称即可;

4.部署服务

部署服务
root@master231 dashboard]# kubectl apply -f 01-dashboard.yaml 
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
5.查看资源 `kubectl get pods,svc -n kubernetes-dashboard `
NAME                                            READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-9d986c98c-x8gzf   1/1     Running   0          23s
pod/kubernetes-dashboard-5ccf77bb87-sd7z7       1/1     Running   0          23s

NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/dashboard-metrics-scraper   ClusterIP      10.200.253.69   <none>        8000/TCP       23s
service/kubernetes-dashboard        LoadBalancer   10.200.75.249   10.0.0.153    443:8443/TCP   23s
[root@master231 dashboard]# 

6.访问Dashboard
https://10.0.0.153/#/login

输入神秘代码: "thisisunsafe".
7.基于token登录实战

  • 7.1 创建sa
[root@master231 dashboard]# kubectl create serviceaccount linux97 -o yaml --dry-run=client > 02-sa.yaml
[root@master231 dashboard]# 
[root@master231 dashboard]# vim 02-sa.yaml 
[root@master231 dashboard]# 
[root@master231 dashboard]# cat  02-sa.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: linux97
[root@master231 dashboard]# 
[root@master231 dashboard]# kubectl apply -f 02-sa.yaml 
serviceaccount/linux97 created
[root@master231 dashboard]# 
[root@master231 dashboard]# kubectl get -f 02-sa.yaml 
NAME      SECRETS   AGE
linux97   1         5s
[root@master231 dashboard]# 
[root@master231 dashboard]# kubectl get sa linux97 
NAME      SECRETS   AGE
linux97   1         13s
[root@master231 dashboard]# 
  • 7.2 将sa和内置集群角色绑定
[root@master231 dashboard]# kubectl create clusterrolebinding dashboard-linux97  --clusterrole=cluster-admin --serviceaccount=default:linux97 -o yaml --dry-run=client > 03-clusterrolebinding-sa.yaml
[root@master231 dashboard]# 
[root@master231 dashboard]# vim 03-clusterrolebinding-sa.yaml 
[root@master231 dashboard]# 
[root@master231 dashboard]# cat 03-clusterrolebinding-sa.yaml 
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dashboard-linux97
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: linux97
  namespace: default
[root@master231 dashboard]# 
[root@master231 dashboard]# kubectl apply -f  03-clusterrolebinding-sa.yaml 
clusterrolebinding.rbac.authorization.k8s.io/dashboard-linux97 created
[root@master231 dashboard]# 
[root@master231 dashboard]# kubectl get clusterrolebindings dashboard-linux97
NAME                ROLE                        AGE
dashboard-linux97   ClusterRole/cluster-admin   11s
[root@master231 dashboard]# 
[root@master231 dashboard]# kubectl get clusterrolebindings dashboard-linux97 -o wide
NAME                ROLE                        AGE   USERS   GROUPS   SERVICEACCOUNTS
dashboard-linux97   ClusterRole/cluster-admin   44s                    default/linux97
[root@master231 dashboard]# 
  • 7.3 浏览器使用token登录【注意,你的token和我的不一样】
[root@master231 dashboard]# kubectl get secrets `kubectl get sa linux97 -o jsonpath='{.secrets[0].name}'` -o jsonpath='{.data.token}' |base64 -d ; echo
eyJhbGciOiJSUzI1NiIsImtpZCI6IlNCUF9mT01TOHVleGIxc1JvdzdzODhPMVg2YmExdm5weWpJZ3BLUDVNQWcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImxpbnV4OTctdG9rZW4tcGZmeHgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGludXg5NyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImU4YmZkMTE0LWY5NzItNGQyZC1iYjI4LTY4NWFiZTMxMjE1OSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmxpbnV4OTcifQ.Y5UNPod7a5HyjJjia_a25lARq9aZT9sS50rH9I9-j8ldYNeoZybMC0vohPBCnEy_aVknNNzTn2WTCQaN0wKg6dIjQNCvodegmf_h8yU0u63KGB5XggkcJvSdA7OeehAViZ9c-u9vQF_WsT4PujSw73aqhbGbtazmvgCrxOTYNYE0ZyPwqibGvm7kqmSnDiE_0ajX2tNR3G-OSGUbZF-FeZeJdEJ8QJsOct63wTyBNnmlFEebuVr9QELMgtNrzIvZjIOdfb0VhV1mFLqqFQymtmRuGQDbIisgv_ci6EUjwl41A_myceuclbzcFKiO4pIk9VKQdjmj3BjpodNA1ArRUw
[root@master231 dashboard]# 

使用Kubeconfig授权登录实战(彩蛋)

配置文件详解
	1.创建kubeconfig文件
cat > oldboyedu-generate-context-conf.sh <<'EOF'
#!/bin/bash
# auther: Jason Yin


# 获取secret的名称
SECRET_NAME=`kubectl get sa linux97 -o jsonpath='{.secrets[0].name}'`

# 指定API SERVER的地址
API_SERVER=10.0.0.231:6443

# 指定kubeconfig配置文件的路径名称
KUBECONFIG_NAME=./oldboyedu-k8s-dashboard-admin.conf

# 获取用户的tocken
TOCKEN=`kubectl get secrets $SECRET_NAME -o jsonpath={.data.token} | base64 -d`

# 在kubeconfig配置文件中设置群集项
kubectl config set-cluster oldboyedu-k8s-dashboard-cluster --server=$API_SERVER --kubeconfig=$KUBECONFIG_NAME

# 在kubeconfig中设置用户项
kubectl config set-credentials oldboyedu-k8s-dashboard-user --token=$TOCKEN --kubeconfig=$KUBECONFIG_NAME

# 配置上下文,即绑定用户和集群的上下文关系,可以将多个集群和用户进行绑定哟~
kubectl config set-context oldboyedu-admin --cluster=oldboyedu-k8s-dashboard-cluster --user=oldboyedu-k8s-dashboard-user --kubeconfig=$KUBECONFIG_NAME

# 配置当前使用的上下文
kubectl config use-context oldboyedu-admin --kubeconfig=$KUBECONFIG_NAME
EOF

bash oldboyedu-generate-context-conf.sh

kuboard快速入门实战

步骤以及命令
	官网地址:
		https://kuboard.cn/

	参考链接:
		https://kuboard.cn/install/v3/install-in-k8s.html

	1.部署kuboard
[root@master231 kuboard]# wget  https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
[root@master231 kuboard]# kubectl apply -f  kuboard-v3-swr.yaml 
namespace/kuboard created
configmap/kuboard-v3-config created
serviceaccount/kuboard-boostrap created
clusterrolebinding.rbac.authorization.k8s.io/kuboard-boostrap-crb created
daemonset.apps/kuboard-etcd created
deployment.apps/kuboard-v3 created
service/kuboard-v3 created
[root@master231 kuboard]# 
[root@master231 kuboard]# kubectl get pods -n kuboard  -o wide
NAME                               READY   STATUS    RESTARTS        AGE     IP            NODE        NOMINATED NODE   READINESS GATES
kuboard-agent-2-55b9bfbb7c-89nff   1/1     Running   2 (2m43s ago)   2m55s   10.100.0.56   master231   <none>           <none>
kuboard-agent-6f4885bcd7-7xzz8     1/1     Running   2 (2m44s ago)   2m55s   10.100.0.55   master231   <none>           <none>
kuboard-etcd-trt8q                 1/1     Running   0               3m58s   10.0.0.231    master231   <none>           <none>
kuboard-v3-685dc9c7b8-bhqfw        1/1     Running   0               3m58s   10.100.0.54   master231   <none>           <none>
[root@master231 kuboard]# 


镜像地址:
	http://192.168.14.253/Resources/Kubernetes/Project/kuboard/kuboard-on-k8s/kuboard-v3-swr.yaml



	2.访问 Kuboard
[root@master231 kuboard]# kubectl get svc -n kuboard  
NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                                        AGE
kuboard-v3   NodePort   10.200.117.52   <none>        80:30080/TCP,10081:30081/TCP,10081:30081/UDP   4m36s
[root@master231 kuboard]# 


在浏览器中打开链接 http://10.0.0.233:30080

输入初始用户名和密码,并登录

用户名: admin
密码: Kuboard123



posted @ 2025-07-22 08:54  寻梦行  阅读(11)  评论(0)    收藏  举报