k8s dashboard的安装、k8s图形化工具kubeoard的安装
前言环境:centos7.9 docker-ce-20.10.9 kubernetes-version v1.22.6 kubernetes-dashboard v2.5.0什么是dashboarddashboard是kubernetes集群的Web UI,用户可以通过dashboard进行管理集群内所有资源对象,例如查看资源对象的运行情况,部署新的资源对象,伸缩deployment中的pod数量
目录
前言
环境: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,如下图所示:

如果浏览器弹出高级按钮,点击展开高级按钮显示报错,仍然无法访问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集群即可。
更多推荐
所有评论(0)