k8s图形化工具dashboard的安装、k8s图形化工具kubeoard的安装

前言

环境: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

方法一、直接一键运行,默认dashboard以aip方式运行
[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

方法二、先下载yaml到本地再运行,本篇使用NodePort方式运行dashboard
#下载官方的dashboard的yaml文件
[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
[root@master ~]# vim recommended.yaml								#修改yaml配置文件,更改资源类型为NodePort(该项可做可不做)
 32 kind: Service
 33 apiVersion: v1
 34 metadata:
 35   labels:
 36     k8s-app: kubernetes-dashboard
 37   name: kubernetes-dashboard
 38   namespace: kubernetes-dashboard
 39 spec:
 40     type: NodePort						#大概在40行处添加一个type: NodePort,注意剧本的语法格式
 41   ports:
 42     - port: 443
 43       targetPort: 8443
 44       nodePort: 30001					#定义对外的访问端口为30001
 45   selector:
 46     k8s-app: kubernetes-dashboard												
 47 ---
[root@master ~]# kubectl apply -f recommended.yaml					#运行,启动dashboard
[root@master ~]# kubectl get pods -n kubernetes-dashboard			#运行成功,dashboard安装完成
NAME                                        READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-c45b7869d-9mkr8   1/1     Running   0          87s
kubernetes-dashboard-764b4dd7-ccgqn         1/1     Running   0          88s
[root@master ~]# 
[root@master ~]# kubectl get svc -n kubernetes-dashboard			#查看dashboard的对外端口30001
NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.101.244.233   <none>        8000/TCP        5m58s
service/kubernetes-dashboard        NodePort    10.101.188.28    <none>        443:30001/TCP   5m58s
[root@master ~]# 

web访问dashboard可视化面板

访问dashboard默认是https://master_ip:30001/,如下图所示:
k8s图形化工具dashboard的安装、k8s图形化工具kubeoard的安装_第1张图片
发现dashboard有两种登陆方式,一种是Token方式,另外一种是使用kubeconfig方式,下面分别介绍这两种方式登陆。

方式一、使用Token方式登陆

#创建一个叫dashboard-admin的账号,并指定命名空间为kube-system
[root@master ~]# kubectl create serviceaccount dashboard-admin -n kube-system 
serviceaccount/dashboard-admin created

#创建一个关系,关系名为dashboard-admin,角色为cluster-admin,账户为kube-system命名空间下的dashboard-admin账号
[root@master ~]# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created
[root@master ~]# kubectl get secrets --all-namespaces | grep -i dashboard-admin			#查看Token的编号(第二列)
kube-system            dashboard-admin-token-jgxt9                      kubernetes.io/service-account-token   3      8m4s
[root@master ~]# kubectl describe secret/dashboard-admin-token-jgxt9 -n kube-system 	#查看指定Token的编号的具体token值
Name:         dashboard-admin-token-jgxt9
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-admin
              kubernetes.io/service-account.uid: 93aeb666-79f0-4374-857d-15db559ce4d8

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1099 bytes
namespace:  11 bytes
token:      			 eyJhbGciOiJSUzI1NiIsImtpZCI6ImF0Yjhta24xLUlhV2RTX0ZFZXgxVDlmQk5fSFVtWTRMMWgzbmJHVXROU0UifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tamd4dDkiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOTNhZWI2NjYtNzlmMC00Mzc0LTg1N2QtMTVkYjU1OWNlNGQ4Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.fBXTIGWo1sT4sc95RV074RwiSbfjT7wkZDcHcPOyddgGYlqob6H-E_7bAv1aIy11jgsvv5BChnKO-3PkDG16e9P6t2ozjW1l9VcHnw20lIliAEjnAnLSDBPAn6xHBOKHVvjAUUOYTN5a87ZgbbsLMnbu2XnzYpCIOfIkrYi4fVOzew-PiUhrwZJTal2TxMTnBxG2SxazyUt1SjHN7Azo-QVtfdjKKRIZAPeHqn211y3Ygsclp5TO3z747mSjB0s7q6Svyv-HTVpu25xMgInYXzK-cNzhG6O1tjWSWihlFkf6PzxcaejfuiMWovxMY6lyL6MCNjUM_iroO_JhKJ8QqA
[root@master ~]# 复制上面这一大段token去dashboard的web页面就能访问dashboard了

方式二、使用kubeconfig方式登陆
(先不讲,配置有点复杂)

什么是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 \
WARNING

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集群即可。

你可能感兴趣的:(kubernetes,dashboard,kubernetes,docker)