VMWare开源了Octant,这是一款帮助开发人员了解应用程序在 Kubernetes 集群中如何运行的工具。它通过可视化的方式,呈现 Kubernetes 对象的依赖关系,可将本地端口请求转发到正在运行的 pod,查看 pod 日志,浏览不同的集群。此外,用户可以通过安装或编写插件来扩展 Octant 的功能。
Octant 为开发人员提供了一个仪表板,用于实时查看集群中运行的工作负载。Kubernetes 生态系统已经有了仪表板项目,比如官方仪表板、Kubernator、Kubernetic和Kiali(如果正在使用 Istio)。但是 VMWare 的首席工程师Joe Beda说,当他们开发这个工具时,“并没有想把Octant做成一个仪表板,而是作为kubectl的一个可视化补充”。
用户可以探索 Kubernetes 对象,如 cron 作业、守护程序集、部署、作业、pod 或服务。此外,Octant 还提供了一个资源图,用户可以看到对象的状态以及对象之间是如何相互依赖的。例如,哪些对象属于哪个服务或入口对象,或者 pod 正在使用哪个服务帐户。
Octant 是一个客户端工具,用户不需要在集群中安装任何东西就可以使用它。因为 Octant 在本地运行,所以它使用开发人员的本地凭证和权限来查询集群中的对象。Kubernetes 管理员不必担心给用户额外的权限。此外,对于必须与不同集群交互的开发人员,Octant 支持多个kubeconfig文件。用户可以通过按钮切换不同的集群或名称空间,而无需运行两三个 kubectl 命令。
Octant 的另一个特性是能够将本地端口转发到正在运行的 pod 并连接到它。用户不需要运行 kubectl port-forward 命令,只需单击 Octant 的仪表板就可以开始转发。此外,Octant 支持从不同名称空间端口转发多个 pod。
在同一个仪表板中,用户还可以实时地从 pod 和容器中读取日志,而不需要运行任何 kubectl logs 命令,或者使用多个终端同时调试不同的 pod 或容器。
Kubernetes API 还可以通过自定义资源定义(CRD)进行扩展,Octant 支持探测集群中运行的任何 CRD。因为 Octant 也有一个用Go编写的插件系统,CRD 作者可以创建插件来丰富自定义资源的可见性。Octant 的插件系统允许其他工具和流程与 Kubernetes 工作负载的交付生命周期集成。例如,插件可以突出显示部署或发布后更新的 Kubernetes 对象。因此,用户可以更有效地发现问题,而无需在终端中运行多个命令。
要开始使用 Octant,用户需要在 Linux、Mac 或 Windows 10 工作站中安装该工具。Windows 用户可以使用chocolatey安装 Octant,运行 choco install octant --confirm 命令,或使用scoop运行 scoop install octant 命令。用户也可以从发布页面下载 Linux、Mac 或 Windows 二进制文件,解包并运行它。Octant正致力于将其应用到Homebrew中。
Octant的路线图包括一些功能,比如使用 YAML 编辑器编辑 Kubernetes 对象,在 Octant 中嵌入 kubectl 命令行,通过热图来帮助用户理解 pod 中的任何问题,以及带有更多按钮、模态窗口和警报的 GUI。
原文链接:
Octant: A Local and Real-Time Dashboard for Kubernetes Workloads
评论