2-5 K8s图形化管理界面dashboard

发布于:2023-01-24 ⋅ 阅读:(16) ⋅ 点赞:(0) ⋅ 评论:(0)


前言

kubernetes中管理集群中资源的方式通常有四种:命令行、YAML、API和图形界面。其中dashboard是K8s官方的图形界面工具。使用简单,操作方便,能监控node和pod等。



安装dashboard

dashboard是通过yaml和镜像搭建的。先在github网站找到与k8s集群版本兼容性打√的版本,再下载对应的yaml文件:

dashboard版本与k8s版本兼容性

下载yaml

经过对比发现dashboard v2.6.0对K8s v1.24完全兼容,下载v2.6.0版本yaml文件:

curl -LO https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.0/aio/deploy/recommended.yaml


下载镜像

在部署节点下载互联网镜像,再打tag标签,最后上传到本地镜像源。注意版本号一定要指明:

docker pull kubernetesui/dashboard:v2.6.0
docker tag kubernetesui/dashboard:v2.6.0 easzlab.io.local:5000/kubernetesui/dashboard:v2.6.0
docker push easzlab.io.local:5000/kubernetesui/dashboard:v2.6.0

docker pull kubernetesui/metrics-scraper:v1.0.8
docker tag kubernetesui/metrics-scraper:v1.0.8 easzlab.io.local:5000/kubernetesui/metrics-scraper:v1.0.8
docker push easzlab.io.local:5000/kubernetesui/metrics-scraper:v1.0.8

配置yaml文件

# 暴露dashboard的节点端口,让集群外的机器也能访问。
# cat /etc/kubeasz/clusters/k8s-cluster/hosts | grep NODE_PORT
# NODE_PORT_RANGE="30000-32767"
# nodePort: 30443 端口需要在集群部署前的定义值之间:
39 spec:
40   type: NodePort
41   ports:
42     - port: 443
43       targetPort: 8443
44       nodePort: 30443

# 修改主程序镜像下载地址
192 - name: kubernetes-dashboard
193   image: easzlab.io.local:5000/kubernetesui/dashboard:v2.6.0

# 修改监控组件镜像下载地址
277 - name: dashboard-metrics-scraper
278   image: easzlab.io.local:5000/kubernetesui/metrics-scraper:v1.0.8


部署dashboard:

kubectl apply -f dashboard.yaml

# 查看pod和对应node
kubectl get pod -n kubernetes-dashboard -o wide
NAME                                         READY   STATUS    RESTARTS   AGE     IP               NODE              NOMINATED NODE   READINESS GATES
dashboard-metrics-scraper-864d79d497-7qvnd   1/1     Running   0          4m13s   172.20.104.5     192.168.100.154   <none>           <none>
kubernetes-dashboard-66f958bb-m4n72          1/1     Running   0          4m13s   172.20.166.131   192.168.100.153   <none>           <none>

# 找出节点IP为192.168.100.153或192.168.100.154
使用浏览器输入以下网址都能访问dashboard:
https://192.168.100.153:30443
https://192.168.100.154:30443

首次登录dashboard需认证

生成Token

出于安全,登录dashboard需要认证。我们选择Token认证方式。编辑admin-user.yaml与admin-secret.yaml文件:

vim admin-user.yaml

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

vim admin-secret.yaml

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

应用admin-user.yaml创建用户,应用admin-secret.yaml创建密码,最后describe查看密码:

kubectl apply -f admin-user.yaml
kubectl apply -f admin-secret.yaml 

# 复制token:后面的近一千个字符串
sudo kubectl describe secrets dashboard-admin-user -n kubernetes-dashboard
token: eyJhbGciOiJSUzI1NiIsImt......5nfHsl3abCwpiO8VXh7_A

回到浏览器,粘贴token,即可登录到管理界面。登录后第一件事:选择命名空间。

界面简介

dashboard界面

总体结构

1)头部header有logo,命名空间选择,搜索栏,创建资源按钮等。
2)蓝色一栏左侧为面包屑导航,右侧当点击相关资源,会出现编辑删除等按钮。
3)页面左侧为菜单栏,点击一级菜单会列出全部二级菜单内容,单击二级菜单,只显示该内容。
4)主干body为内容展示与操作区。内容包括集群中各类资源,操作基本为资源的增删改查。

菜单介绍

工作负载:可查看Deployments,Pods,Controllers等。
服务:可查看Ingress和Services等。
配置和存储:可查看Config Maps和Secrets等。
集群:可查看命名空间,Nodes,持久卷等。

资源管理

创建资源

点击界面右上角的+符号按钮,可创建资源。主要以编辑或导入yaml和json为主。

创建资源选项

编辑资源

选择到具体的资源,点击右上角铅笔按钮可编辑资源。同样以修改yaml和json为主。

编辑资源

总结

以上就是Dashboard的介绍,其它图形化工具还有Rancher和Kuboard。图形化适合k8s基础操作,查看集群资源状态等。