如何像 Sealos 一样在浏览器中打造一个 Kubernetes 终端?

本文探讨如何通过Kubernetes自定义资源定义(CRD)在Web页面实现终端功能。介绍了Terminal高级用法,如与App Launchpad、Database交互,阐述功能设计与实现,包括Controller、Pod等,还提及前后端交互流程、自定义配置,最后提出未来改进方向,提升用户与集群交互体验。

作者:槐佳辉。Sealos maintainer

在 Kubernetes 的世界中,命令行工具(如 kubectlhelm)是我们与集群交互的主要方式。然而,有时候,我们可能希望能够在 Web 页面中直接打开一个终端,执行这些命令,而不需要在本地环境中安装和配置这些工具。本文将深入探讨如何通过 Kubernetes 自定义资源定义(CRD)实现这个功能,并通过一个真实的示例展示其设计和实现过程。

Sealos 中的 App Launchpad 和 Database 等应用为我们屏蔽掉了 kubernetes 资源层面的逻辑,抽象为应用层,但是对应更为复杂的情况,可能需要我们更原生的操作 kubernetes。

如下所示,在 Terminal 中与 K8s API Server 交互:

查看 Pod 资源(kubernetes 最小调度单位,真正运行容器的资源):

$ kubectl get pod

查看存储 pvc 资源(容器挂载的存储资源,如 App Launchpad 中指定的存储):

$ kubectl get pvc

Terminal 高级用法

Terminal 还支持更为复杂的操作。

Terminal + App Launchpad 一键交互

可以直接通过终端 App 进入每个应用所在容器的终端。假设你在应用管理中部署了一个应用 Nginx,可以直接进入 Nginx 应用的详情页面,依次点击详情右侧的三个点,再点击「终端」,便进入了 Nginx 应用的终端。

Terminal + Database 一键直连

在终端中一键直连数据库 App 中创建的数据库。

进入数据库详情页面,点击左侧的「一键连接」:

跳转到 Terminal 并直连数据库:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值