前言

环境:centos7.9 docker-ce-20.10.9 kubernetes-version v1.22.6 kubernetes-dashboard v2.5.0

什么是dashboard

dashboard是kubernetes集群的Web UI,用户可以通过dashboard进行管理集群内所有资源对象,例如查看资源对象的运行情况,部署新的资源对象,伸缩deployment中的pod数量等等一系列操作。

部署dashboard

方法一、直接一键运行
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

方法二、先下载yaml到本地再运行,本篇使用NodePort方式运行dashboard
#下载官方的dashboard的yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
[root@master ~]# vim recommended.yaml		#修改yaml配置文件,更改svc资源类型为NodePort,即对外暴露访问端口30001
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
    type: NodePort				#大概在40行处添加一个type: NodePort,注意剧本的语法格式
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001			#定义对外的访问端口为30001
  selector:
    k8s-app: kubernetes-dashboard												

kubectl apply -f recommended.yaml
kubectl get pods -n kubernetes-dashboard

web访问dashboard可视化面板

访问dashboard默认是https://master_ip:30001/,注意是https,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d47ca36e613e471c9f47d2c4b1b924d1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATXNzR3Vv,size_20,color_FFFFFF,t_70,g_se,x_16
如果浏览器弹出高级按钮,点击展开高级按钮显示报错,仍然无法访问dashboard上面的页面,那么需要配置一下谷歌浏览器:
--test-type --ignore-certificate-errors
在这里插入图片描述

发现dashboard有两种登陆方式,一种是Token方式,另外一种是使用kubeconfig方式,下面分别介绍这两种方式登陆。

方式一、使用Token方式登录

#根据官网步骤来操作:https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md
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
---
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    
EOF
kubectl apply -f dashboard-adminuser.yaml
kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d
#复制上面命令secret查询解密的token去dashboard的web页面就能访问dashboard了。
#下面是删除授权,了解即可
kubectl -n kubernetes-dashboard delete serviceaccount admin-user
kubectl -n kubernetes-dashboard delete clusterrolebinding admin-user
#执行上面命令会自动删除对应的secret admin-user

方式二、使用kubeconfig方式登录

使用kubeadm安装的k8s集群,默认的kubeconfig配置文件/root/.kube/config 并不能用于登录dashboard,因为两者user不一样,所以需要创建一个属于dashboard的kubeconfig配置文件。
前提条件是得有方式一的secret admin-user,因为要用到其token。

#创建cluster集群
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server="https://192.168.544.151:6443" --embed-certs=true --kubeconfig=/etc/kubernetes/dashboard-admin.conf

#创建credentials
#创建credentials需要使用上面的secret admin-user对应的token信息
TOKEN=$(kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d)
kubectl config set-credentials dashboard-admin --token=$TOKEN --kubeconfig=/etc/kubernetes/dashboard-admin.conf

#创建context
kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/etc/kubernetes/dashboard-admin.conf

#切换当前山下文(可以不用切换,了解该命令即可)
kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/etc/kubernetes/dashboard-admin.conf

#最后,把/etc/kubernetes/dashboard-admin.conf文件下载到windows上,使用该文件即可登录dashboard。

什么是Kuboard

Kuboard,是一款免费的 Kubernetes 图形化管理工具,Kuboard 力图帮助用户快速在 Kubernetes 上落地微服务。

Kuboard的安装

按照官网提示进行安装:https://kuboard.cn/install/v3/install-gitlab.html#%E5%90%AF%E5%8A%A8-kuboard
1、准备好一个 Linux 服务器用于安装 Kuboard-V3,并且该机器上的 docker 版本不低于 19.03
2、您已经有自己的 Kubernetes 集群,并且版本不低于 Kubernetes v1.13

sudo docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 80:80/tcp \					#前面的80端口是主机的端口,建议修改
  -p 10081:10081/tcp \
  -e KUBOARD_ENDPOINT="http://内网IP:80" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  eipwork/kuboard:v3
  # 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。
  # 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \
  # Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \
说明:
KUBOARD_ENDPOINT 参数的作用是,让部署到 Kubernetes 中的 kuboard-agent 知道如何访问 Kuboard Server;
KUBOARD_ENDPOINT 中也可以使用外网 IP;
Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server;
建议在 KUBOARD_ENDPOINT 中使用域名;
如果使用域名,必须能够通过 DNS 正确解析到该域名,如果直接在宿主机配置 /etc/hosts 文件,将不能正常运行;
参数解释:
建议将此命令保存为一个 shell 脚本,例如 start-kuboard.sh,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;
第 4 行,将 Kuboard Web 端口 80 映射到宿主机的 80 端口(您可以根据自己的情况选择宿主机的其他端口);
第 5 行,将 Kuboard Agent Server 的端口 10081/tcp 映射到宿主机的 10081 端口(您可以根据自己的情况选择宿主机的其他端口);
第 6 行,指定 KUBOARD_ENDPOINT 为 http://内网IP,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入;
第 7 行,指定 KUBOARD_AGENT_SERVER 的端口为 10081,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081,例如,如果第 5 行为 -p 30081:10081/tcp 则第 7 行应该修改为 -e KUBOARD_AGENT_SERVER_TCP_PORT="30081";
第 8 行,将持久化数据 /data 目录映射到宿主机的 /root/kuboard-data 路径,请根据您自己的情况调整宿主机路径;

其他参数:
在启动命令行中增加环境变量 KUBOARD_ADMIN_DERAULT_PASSWORD,可以设置 admin 用户的初始默认密码。

访问Kuboard v3.x 的界面

在浏览器输入 http://your-host-ip:80 即可访问 Kuboard v3.x 的界面,登录方式:

用户名: admin
密 码: Kuboard123

安照提示一步步的导入已有的kubernetes集群即可。

Logo

开源、云原生的融合云平台

更多推荐