Kubernetes-dashboard部署与使用

Dashboard简介

        在 Kubernetes 社区中,有一个很受欢迎的 Dashboard 项目,它可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。

       Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。

Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。

Kubernetes-dashboard部署与使用_第1张图片

检查Kubernetes与Dashboard的版本匹配

1、Kubernetes 版本: 1.20.5(本文采用)
2、Dashboard 版本 : v2.1.0(本文采用)
3、检查dashboard版本与kubernetes版本兼容性:
https://github.com/kubernetes/dashboard/releases

部署Dashboard

kubernetes默认情况下不会自带部署 Dashboard。可以通过执行yaml文件直接部署:

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

查看dashboard运行状态,以deployment方式部署,运行2个pod及2个service:

[root@host161 ~]# kubectl get pod -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-79c5968bdc-mbkzk   1/1     Running   1          2d15h
kubernetes-dashboard-7448ffc97b-558kr        1/1     Running   1          2d15h

#查看暴露的service,已修改为nodeport类型:

[root@host161 ~]# kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.110.27.206           8000/TCP        13d
kubernetes-dashboard        NodePort    10.100.19.179           443:30001/TCP   13d


修改Dashboard

使用nodeport方式将dashboard服务暴露在集群外,指定使用30001端口,可自定义:

kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec":{"type":"NodePort","ports":[{"port":443,"targetPort":8443,"nodePort":30001}]}}'

登录Dashboard

1、浏览器访问dashboard:

https://:30001

#说明:为dashboard所安装的节点IP.如 https://192.168.138.161:30001/

2、选择token方式

3、创建dashboard-admin

cat > dashboard-adminuser.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

---
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  
EOF

4、创建登录用户

kubectl apply -f dashboard-adminuser.yaml

        说明:上面创建了一个叫admin-user的服务账号,并放在kubernetes-dashboard 命名空间下,并将cluster-admin角色绑定到admin-user账户,这样admin-user账户就有了管理员的权限。默认情况下,kubeadm创建集群时已经创建了cluster-admin角色,我们直接绑定即可。

5、查看admin-user账户的token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

 

6、把获取到的Token复制到登录界面的Token输入框中,成功登陆dashboard:

Kubernetes-dashboard部署与使用_第2张图片

7、通过ingress方式将dashboard暴露到集群外是更好的选择,需要自行部署,参考:

  • traefik
  • contour
  • nginx-ingress
  • metallb

 

参考资料

1、官方参考文档:
英文:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

中文:https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/

2、github项目地址:
https://github.com/kubernetes/dashboard

3、https://blog.csdn.net/weixin_40039683/article/details/112886735

4、https://blog.csdn.net/networken/article/details/85607593(包含Dashboard使用方法)

5、快速在 Kubernetes 上落地微服务:https://kuboard.cn/

 

 

 

 

 

 

 

你可能感兴趣的:(Kubernetes-dashboard部署与使用)