KubePi:开源Kubernetes可视化管理面板,让集群管理如此简单

27 阅读8分钟

KubePi:开源Kubernetes可视化管理面板,让集群管理如此简单

在云原生时代,Kubernetes已成为容器编排的事实标准,但其复杂性却让许多开发者望而却步。KubePi作为一款现代化的开源Kubernetes可视化管理面板,正以其简洁的设计与强大的功能,让集群管理变得前所未有的简单。

一、KubePi是什么?为什么你需要它?

1.1 诞生背景:简化Kubernetes管理的利器

Kubernetes虽然强大,但其命令行操作的复杂性YAML文件的繁琐性一直是开发者和运维人员的痛点。KubePi由KubeOperator团队开发,旨在通过图形化界面简化Kubernetes集群的部署、监控和维护,让即使不具备深厚Kubernetes知识的用户也能轻松管理集群。

1.2 核心价值:可视化多集群管理

KubePi允许管理员导入多个Kubernetes集群,并通过精细的权限控制将不同集群(Cluster)和命名空间(Namespace)的管理权限分配给指定用户。这意味着:

  • 开发人员:可以管理集群中运行的应用程序并进行故障排查,而无需深入掌握复杂的Kubernetes命令。
  • 运维人员:能够在一个统一的界面上监控和管理所有集群资源,大幅提升效率。
  • 企业IT:实现对跨地域、跨云的Kubernetes集群进行统一管理,提升运维效率。

二、核心功能特点:不止于可视化

KubePi的魅力远不止提供一个Web界面那么简单,它集成了多种强大功能:

2.1 多集群统一管理

  • 一键导入:支持通过Token、KubeConfig和证书三种方式导入现有Kubernetes集群,实现对集群的零侵入。
  • 集中控制:在单一控制台中管理多个集群的资源,无需在不同环境间切换。

2.2 精细化的权限控制

  • RBAC集成:基于角色的访问控制(RBAC),可以将权限精确到集群或命名空间级别。
  • 用户隔离:确保不同用户或团队只能访问其被授权的资源,保障安全性。

2.3 直观的资源管理

  • 可视化操作:以表单形式替代复杂的YAML文件,简化Deployment、Service、ConfigMap等资源的创建和管理流程。
  • 实时监控:内置资源监控功能,实时展示Node、Pod、Service等关键组件的状态和性能指标。

2.4 友好的用户界面

  • 现代化UI:基于Vue.js和FIT2CLOUD UI组件库构建,提供响应迅速、美观易用的操作体验。
  • 操作审计:记录用户操作日志,满足企业安全审计需求。

2.5 开箱即用与高扩展性

  • 快速部署:通过Docker容器即可快速部署,极大降低了运维门槛。
  • 扩展性强:设计上考虑了可扩展性,允许通过插件或自定义功能来扩展其能力。

三、安装部署:多种方式快速上手

KubePi提供了灵活的部署方式,适合从个人体验到生产环境的各种场景。

3.1 Docker快速部署(适合体验和测试)

对于想要快速体验KubePi的用户,一条命令即可启动:

sudo docker run --privileged -d --restart=unless-stopped -p 80:80 1panel/kubepi

启动后,在浏览器中访问 http://<你的服务器IP>:80,使用默认用户名 admin 和密码 kubepi 即可登录。

3.2 Docker持久化部署(推荐用于生产)

为防止数据丢失,建议生产环境挂载持久化数据卷:

# 创建持久化目录
mkdir -p /opt/kubepi
# 安装并挂载卷
sudo docker run --privileged -d -v /opt/kubepi:/var/lib/kubepi --restart=unless-stopped -p 80:80 kubeoperator/kubepi-server

3.3 Kubernetes中部署(原生方式)

如果你希望在一个Kubernetes集群中部署KubePi来管理其他集群,可以使用以下方式:

# 基础部署
sudo kubectl apply -f https://raw.githubusercontent.com/KubeOperator/KubePi/master/docs/deploy/kubectl/kubepi.yaml

# 持久化部署(需要替换创建pvc时使用的storageClass)
sudo kubectl apply -f https://raw.githubusercontent.com/KubeOperator/KubePi/master/docs/deploy/kubectl/kubepi-pvc.yaml

部署完成后,可以通过以下命令获取访问地址:

# 获取Node IP
export NODE_IP=$(kubectl get nodes -o jsonpath="{.items[0].status.addresses[0].address}")
# 获取NodePort
export NODE_PORT=$(kubectl -n kube-system get services kubepi -o jsonpath="{.spec.ports[0].nodePort}")
# 获取Address
echo http://$NODE_IP:$NODE_PORT

3.4 在华为云Flexus云服务器X实例上部署(特定环境示例)

有开发者分享了在华为云Flexus云服务器X实例上,基于openEuler 22.03 LTS操作系统部署KubePi的实践。这种部署方式表明KubePi在不同的云环境和操作系统上具有良好的适应性。

四、使用方法:快速上手KubePi

4.1 初始登录与集群导入

  1. 登录系统:访问部署好的KubePi地址,使用默认凭证(admin/kubepi)登录。
  2. 导入集群
    • 在管理界面中选择"集群管理"。
    • 点击"导入集群",提供现有集群的KubeConfig文件或Token。
    • 建议使用具有集群管理权限的KubeConfig文件以确保完整的功能体验。

4.2 用户与权限管理

  1. 创建用户:在"用户管理"中创建新用户,为其设置用户名和密码。
  2. 分配权限:通过"权限管理"功能,将特定集群或命名空间的权限分配给相应用户,实现精细化的访问控制。

4.3 资源管理与监控

  1. 查看集群概览:登录后,在仪表盘上可以直观地查看已导入集群的整体状态、资源使用情况(如CPU、内存使用率)以及最近事件。
  2. 管理资源:通过左侧菜单,可以方便地管理Node、Pod、Service、PV、ConfigMap、Role等Kubernetes资源。
  3. 故障排查:利用集成的Web Kubectl功能或日志查看器,可以直接在界面上进行故障诊断和排查。

五、企业实战案例:KubePi在不同场景的应用

5.1 中小企业统一管理平台

挑战:中小型企业可能缺乏专业的Kubernetes运维人员,但需要高效管理其容器化应用。 解决方案:部署KubePi作为统一的视觉化管理平台,让开发人员和有限的运维人员能够通过直观的界面轻松管理应用部署、监控集群状态,无需深入记忆复杂的Kubernetes命令。

5.2 教育培训环境

挑战:教学机构需要让学生能够快速理解和操作Kubernetes,但原生界面过于复杂。 解决方案:在教育环境中使用KubePi,为学生提供一个直观的学习和实践平台,降低学习曲线,让学生更专注于理解Kubernetes的核心概念而非命令行操作。

5.3 多集群、多团队协作环境

挑战:拥有多个Kubernetes集群的企业需要实现统一的权限控制和团队协作,不同团队可能需要访问不同的集群或命名空间。 解决方案:利用KubePi的多集群支持细粒度权限控制功能,管理员可以在一站式平台上管理所有集群,并安全地将不同集群或命名空间的管理权限分配给相应的团队或用户,既提升了管理效率,又确保了安全性。

六、KubePi的生态与集成

KubePi可以与一系列优秀的开源工具集成,形成更强大的云原生管理生态系统:

  • 1Panel:一个现代化、开源的Linux服务器运维管理面板,与KubePi结合可以实现更高效的服务器和集群管理。
  • JumpServer:广受欢迎的开源堡垒机,用于管理和监控服务器访问,与KubePi结合可进一步提升集群的安全性和管理效率。
  • DataEase:人人可用的开源数据可视化分析工具,可用于Kubernetes集群数据的实时可视化分析。
  • MeterSphere:开源持续测试平台,支持Kubernetes环境中应用的自动化测试和持续集成。

七、总结:为什么选择KubePi?

在Kubernetes可视化管理工具的选择中,KubePi凭借其以下突出优点脱颖而出:

  1. 简单易用:直观的界面设计显著降低了学习成本,即使是对Kubernetes不太熟悉的用户也能快速上手操作。
  2. 功能全面:从多集群管理、权限控制到资源监控和故障排查,覆盖了Kubernetes日常管理的核心需求。
  3. 部署灵活:支持Docker快速部署和Kubernetes原生部署,适应各种环境需求。
  4. 安全可靠:提供基于RBAC的精细权限控制和操作审计,满足企业级安全要求。
  5. 社区活跃:作为开源项目,拥有活跃的社区支持,能够持续获得功能更新和技术支持。

无论是中小企业、教育机构还是需要管理复杂多集群环境的大型企业,KubePi都提供了一个值得尝试的高效解决方案。通过将复杂的Kubernetes命令和YAML文件转化为直观的可视化操作,它真正实现了让Kubernetes集群管理"人人可用"的目标。

项目地址GitHub - KubeOperator/KubePi 官方文档KubePi Wiki

尝试一下KubePi,开启您高效、便捷的Kubernetes管理之旅吧!