专业的编程技术博客社区

网站首页 > 博客文章 正文

容器可视化-Kuboard(容器可视化管理平台kubesphere)

baijin 2024-11-16 17:05:38 博客文章 3 ℃ 0 评论

Kuboard是一款开源的 Kubernetes 多集群管理和运维平台,提供了可视化的界面和丰富的功能,帮助用户更便捷地管理和监控 Kubernetes 集群。

它适用于单个 Kubernetes 集群、多个 Kubernetes 集群,甚至可以管理不同云厂商或私有数据中心中的 Kubernetes 集群。以下是Kuboard的一些主要特点和功能:

  • 可视化仪表盘:Kuboard提供直观的仪表盘,展示集群状态、资源使用情况和运行状况。
  • 多集群管理:Kuboard支持管理多个 Kubernetes 集群,用户可以在一个平台上管理和监控多个集群。
  • 命名空间管理:Kuboard允许用户创建和管理命名空间,帮助将集群资源进行隔离和管理。
  • Pod和Deployment管理:Kuboard提供了简单的界面来管理Pod和Deployment,用户可以方便地进行伸缩、更新和删除等操作。
  • 服务和域名管理:Kuboard支持服务和域名的管理,使得用户可以更方便地访问应用程序。
  • 日志和事件监控:Kuboard提供了日志和事件监控功能,帮助用户快速发现和排查问题。
  • 应用商店:Kuboard内置了应用商店,用户可以从中选择和安装常用的应用程序。
  • 权限管理:Kuboard支持基于RBAC的权限管理,使得用户可以按需分配不同角色的权限。
  • 命令行终端:Kuboard提供了命令行终端,允许用户直接在浏览器中执行命令。

安装方式:

  • Docker安装:

docker run -d \

--restart=unless-stopped \

--name=kuboard \

-p 80:80/tcp \

-p 10081:10081/tcp \

-e KUBOARD_ENDPOINT="http://192.168.1.14:80" \

-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \

-v /root/kuboard-data:/data \

swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3


注意:

  1. KUBOARD_ENDPOINT 参数的作用是,让部署到 Kubernetes 中的 kuboard-agent 知道如何访问 Kuboard Server;
  2. KUBOARD_ENDPOINT 中也可以使用外网 IP;
  3. Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server;
  4. 建议在 KUBOARD_ENDPOINT 中使用域名;
  5. 如果使用域名,必须能够通过 DNS 正确解析到该域名,如果直接在宿主机配置 /etc/hosts 文件,将不能正常运行;

参数解释:

  1. 建议将此命令保存为一个 shell 脚本,例如 start-kuboard.sh,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;
  2. 第 4 行,将 Kuboard Web 端口 80 映射到宿主机的 80 端口(您可以根据自己的情况选择宿主机的其他端口);
  3. 第 5 行,将 Kuboard Agent Server 的端口 10081/tcp 映射到宿主机的 10081 端口(您可以根据自己的情况选择宿主机的其他端口);
  4. 第 6 行,指定 KUBOARD_ENDPOINT 为 http://内网IP,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入;
  5. 第 7 行,指定 KUBOARD_AGENT_SERVER 的端口为 10081,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081,例如,如果第 5 行为 -p 30081:10081/tcp 则第 7 行应该修改为 -e KUBOARD_AGENT_SERVER_TCP_PORT="30081";
  6. 第 8 行,将持久化数据 /data 目录映射到宿主机的 /root/kuboard-data 路径,请根据您自己的情况调整宿主机路径;

其他参数:

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

http://192.168.1.14:80 admin/Kuboard123


  • 在k8s安装上安装:

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

docker pull eipwork/kuboard-agent:v3

docker pull eipwork/etcd-host:3.4.16-1

docker pull eipwork/kuboard:v3

docker pull questdb/questdb:6.0.4

watch kubectl get pods -n kuboard

常见错误:

CrashLoopBackOff:

  1. kuboard-v3-xxxxx 的容器出现 CrashLoopBackOff 的状态,可能的原因有:
  2. 缺少 kuboard-etcd-xxxx 容器,请查看本章节后面关于 缺少 Master Role 的描述;
  3. kuboard-etcd-xxxx 容器未就绪,请查看 kuboard-etcd-xxxx 容器的日志,解决其不能启动的问题;
  4. kuboard-agent-xxxxx 出现 CrashLoopBackOff 的状态,可能的原因有:
  5. 其依赖的 kuboard-v3 尚未就绪,请耐心等候一会儿即可(根据您的服务器下载镜像速度的不同,大约 3-5 分钟);
  6. kuboard-v3 已经处于 READY (1/1)状态,但是集群的网络插件配置错误或者其他的网络因素,导致 kuboard-agent 的容器不能访问到 kuboard-v3 的容器;


缺少 Master Role:

可能缺少 Master Role 的情况有:

当您在 阿里云、腾讯云(以及其他云)托管 的 K8S 集群中以此方式安装 Kuboard 时,您执行 kubectl get nodes 将 看不到 master 节点;

当您的集群是通过二进制方式安装时,您的集群中可能缺少 Master Role,或者当您删除了 Master 节点的 node-role.kubernetes.io/master= 标签时,此时执行 kubectl get nodes,结果如下所示:

[root@k8s-19-master-01 ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-19-master-01 Ready <none> 19d v1.19.11

k8s-19-node-01 Ready <none> 19d v1.19.11

k8s-19-node-02 Ready <none> 19d v1.19.11

k8s-19-node-03 Ready <none> 19d v1.19.11

在集群中缺少 Master Role 节点时,您也可以为一个或者三个 worker 节点添加 k8s.kuboard.cn/role=etcd 的标签,来增加 kuboard-etcd 的实例数量;

执行如下指令,可以为 your-node-name 节点添加所需要的标签

kubectl label nodes your-node-name k8s.kuboard.cn/role=etcd


etcd

Kuboard V3 依赖于 etcd 提供数据的持久化服务,在当前的安装方式下,kuboard-etcd 的存储卷被映射到宿主机节点的 hostPath (/usr/share/kuboard/etcd 目录);

为了确保每次重启,etcd 能够加载到原来的数据,以 DaemonSet 的形式部署 kuboard-etcd,并且其容器组将始终被调度到 master 节点,因此,您有多少个 master 节点,就会调度多少个 kuboard-etcd 的实例;

某些情况下,您的 master 节点只有一个或者两个,却仍然想要保证 kubuoard-etcd 的高可用,此时,您可以通过为一到两个 worker 节点添加 k8s.kuboard.cn/role=etcd 的标签,来增加 kuboard-etcd 的实例数量;

如果您已经安装了 Kuboard V3,通过此方式调整 etcd 数量时,需要按照如下步骤执行,否则 etcd 将不能正常启动:

执行 kubectl delete daemonset kuboard-etcd -n kuboard

为节点添加标签:

执行 kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

建议 etcd 部署的数量为奇数


卸载Kuboard:

kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

rm -rf /usr/share/kuboard ##清理遗留数据,在 master 节点以及带有 k8s.kuboard.cn/role=etcd 标签的节点上执行

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表