Kubernetes:分享一个可以展示资源视图的 K8s开源 Web/桌面 客户端工具 Octant

Posted 山河已无恙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes:分享一个可以展示资源视图的 K8s开源 Web/桌面 客户端工具 Octant相关的知识,希望对你有一定的参考价值。

写在前面


  • 博文内容主要为 Octant 介绍以及 桌面/Web 端的安装教程
  • 涉及 Linux/Windows 的安装。
  • 理解不足小伙伴帮忙指正

其实当你什么都经历了,会发现,人生无论你怎么精心策划都抵不过一场命运的安排。


Octant 不是仪表板,Octant 是一个带有仪表板视图的平台, 需要说明的时,这个项目有近 10 个月没有维护,不过对于 k8s 工具来讲,我认为它是不次于 Lens 的项目,并且它开源,Lens 要收费了,如果考虑费用问题,我认为这是一个不错的选择。 Octant 可以展示 当前资源的 依赖视图,这对于可以直观的看到 API 资源的依赖关系是很有帮助的。

Octant 提供了一种理解复杂 Kubernetes 环境的新方法。它可以部署为 Web ,通过浏览器客户端访问,也可以以桌面的方法来安装,你需要的仅仅是一个做了授权的 kubeconfig 文件.

对于类似的 k8s 工具,在生产中, Octant 结合 Rancher 可以满足大部分需求。 如果你的访问权限受限,只有一个终端,推荐使用 kubebox 或者 k8s .

特征:

  • 资源查看器 : 以图形方式可视化 Kubernetes 集群中对象之间的关系。各个对象的状态用颜色表示以显示工作负载性能。
  • 摘要视图 : 从通常使用多个 kubectl 命令找到的输出中聚合的单个页面中的合并状态和配置信息。
  • 端口转发: 使用用于调试应用程序的单个按钮将本地端口转发到正在运行的 pod,甚至跨命名空间端口转发多个 pod。
  • 日志流: 查看 Pod 和容器活动的日志流,以便在不打开多个终端的情况下进行故障排除或监控。
  • 标签过滤器: 使用标签过滤组织工作负载,以检查命名空间中包含大量对象的集群。
  • 集群导航:在不同集群的命名空间或上下文之间轻松更改。还支持多个 kubeconfig 文件。
  • 插件系统: 高度可扩展的插件系统,供用户通过 gRPC 提供额外的功能。插件作者可以在现有视图之上添加组件。

桌面端安装

window安装

PS C:\\Users\\山河已无恙\\Downloads> curl -o Octant.Setup.0.25.1.exe  https://github.com/vmware-tanzu/octant/releases/download/v0.25.1/Octant.Setup.0.25.1.exe

下载好之后安装,之后桌面上会有一个图标

点击启动它,第一次打开会提示输入 kubeconfig 文件。

┌──[root@vms81.liruilongs.github.io]-[/var/run]
└─$cat ~/.kube/config

然后点击加载,就可以查看集群信息

哈,可能我机器 CPU 不行,感觉桌面端很耗资源。

web 端安装

window安装

PS C:\\Users\\山河已无恙> choco install octant --confirm --force
Chocolatey v1.1.0
Installing the following packages:
octant
By installing, you accept licenses for the packages.
octant v0.25.1 already installed. Forcing reinstall of version '0.25.1'.
 Please use upgrade if you meant to upgrade to a new version.

octant v0.25.1 (forced) [Approved]
octant package files install completed. Performing other installation steps.
Using system proxy server '127.0.0.1:49739'.
Downloading octant 64 bit
  from 'https://github.com/vmware-tanzu/octant/releases/download/v0.25.1/octant_0.25.1_Windows-64bit.zip'
Using system proxy server '127.0.0.1:49739'.
Progress: 100% - Completed download of C:\\Users\\山河已无恙\\AppData\\Local\\Temp\\chocolatey\\octant\\0.25.1\\octant_0.25.1_Windows-64bit.zip (54.37 MB).
Download of octant_0.25.1_Windows-64bit.zip (54.37 MB) completed.
Hashes match.
Extracting C:\\Users\\山河已无恙\\AppData\\Local\\Temp\\chocolatey\\octant\\0.25.1\\octant_0.25.1_Windows-64bit.zip to C:\\ProgramData\\chocolatey\\lib\\octant\\tools...
C:\\ProgramData\\chocolatey\\lib\\octant\\tools
 ShimGen has successfully created a shim for octant.exe
 The install of octant was successful.
  Software installed to 'C:\\ProgramData\\chocolatey\\lib\\octant\\tools'

Chocolatey installed 1/1 packages.
 See the log for details (C:\\ProgramData\\chocolatey\\logs\\chocolatey.log).

Enjoy using Chocolatey? Explore more amazing features to take your
experience to the next level at
 https://chocolatey.org/compare
PS C:\\Users\\山河已无恙>

启动运行

PS C:\\ProgramData\\chocolatey\\lib\\octant\\tools\\octant_0.25.1_Windows-64bit> .\\octant.exe
2023-01-14T06:12:55.534-0500    INFO    dash/dash.go:637        cannot find kube config: C:\\Users\\山河
已无恙\\.kube\\config
2023-01-14T06:12:55.534-0500    INFO    dash/dash.go:134        no valid kube config found, initializing loading API
2023-01-14T06:12:55.536-0500    INFO    dash/dash.go:154        waiting for kube config ...
2023-01-14T06:12:55.577-0500    INFO    dash/dash.go:546        Dashboard is available at http://127.0.0.1:7777

输入 kubeconfig 文件信息

可以更换主题,查看集群信息。

Linux 下安装

下载安装包

curl -o octant_0.25.1_Linux-64bit.tar.gz  https://github.com/vmware-tanzu/octant/releases/download/v0.25.1/octant_0.25.1_Linux-64bit.tar.gz

解压查看版本信息。

┌──[root@vms81.liruilongs.github.io]-[~/ansible/octant]
└─$tar -zxvf octant_0.25.1_Linux-64bit.tar.gz
octant_0.25.1_Linux-64bit/README.md
octant_0.25.1_Linux-64bit/octant
┌──[root@vms81.liruilongs.github.io]-[~/ansible/octant]
└─$octant_0.25.1_Linux-64bit/octant version
Version:  0.25.1
Git commit:  f16cbb951905f1f8549469dfc116ca16cf679d46
Built:  2022-02-24T23:02:15Z

查看帮助文档了解启动信息

┌──[root@vms81.liruilongs.github.io]-[~/ansible/octant]
└─$octant_0.25.1_Linux-64bit/octant --help
octant is a dashboard for high bandwidth cluster analysis operations

Usage:
  octant [flags]
  octant [command]

Available Commands:
  completion  generate the autocompletion script for the specified shell
  help        Help about any command
  version     Show version

Flags:
      --context string                 initial context
      --disable-cluster-overview       disable cluster overview
      --enable-feature-applications    enable applications feature
      --kubeconfig string              absolute path to kubeConfig file
  -n, --namespace string               initial namespace
      --namespace-list strings         a list of namespaces to use on start
      --plugin-path string             plugin path
  -v, --verbose                        turn on debug logging
      --client-max-recv-msg-size int   client max receiver message size (default 16777216)
      --accepted-hosts string          accepted hosts list [DEV]
      --client-qps float32             maximum QPS for client [DEV] (default 200)
      --client-burst int               maximum burst for client throttle [DEV] (default 400)
      --disable-open-browser           disable automatic launching of the browser [DEV]
      --disable-origin-check           disable cross origin resource check
  -c, --enable-opencensus              enable open census [DEV]
      --klog-verbosity int             klog verbosity level [DEV]
      --listener-addr string           listener address for the octant frontend [DEV]
      --local-content string           local content path [DEV]
      --proxy-frontend string          url to send frontend request to [DEV]
      --ui-url string                  dashboard url [DEV]
      --browser-path string            the browser path to open the browser on
      --memstats string                log memory usage to this file
      --meminterval string             interval to poll memory usage (requires --memstats), valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". (default "100ms")
  -h, --help                           help for octant

Use "octant [command] --help" for more information about a command.

这里在启动的时候需要注意一下,如果终端没有浏览器,需要指定 --disable-open-browser,同时如果是 其他机器通过IP访问,需要添加监听的任意IP对端口的访问 --listener-addr 0.0.0.0:7777, 默认情况下, Octant 会在启动时候自动打开默认浏览器,并且只监听本地对 指定端口的访问。

┌──[root@vms81.liruilongs.github.io]-[~/ansible/octant/octant_0.25.1_Linux-64bit]
└─$./octant --kubeconfig ~/.kube/config --disable-open-browser --disable-origin-check --listener-addr 0.0.0.0:7777
2023-01-14T20:05:20.673+0800    INFO    dash/watcher.go:117     watching config file    "component": "config-watcher", "config": "/root/.kube/config"
.............
2023-01-14T20:05:20.677+0800    INFO    module/manager.go:87    registering action      "component": "module-manager", "actionPath": "action.octant.dev/deleteObject", "module-name": "configuration"
2023-01-14T20:05:20.677+0800    WARN    plugin/manager.go:405   Unable to add /root/.config/octant/plugins to the plugin watcher. Error: no such file or directory

github.com/vmware-tanzu/octant/pkg/plugin.(*Manager).watchPluginFiles
        /__w/octant/octant/pkg/plugin/manager.go:405
2023-01-14T20:05:20.691+0800    INFO    dash/dash.go:546        Dashboard is available at http://[::]:7777

其他机器测试。可以直接进入当前 pod 的内部环境

查看日志信息

查看资源依赖关系

不对不说,octant 很消耗资源,尤其是对CPU,所以不太建议部署到集群相关的节点。

关于 octant 和小伙伴分享到这里,安装很简单,赶快去尝试吧。

博文参考


https://octant.dev/

https://github.com/vmware-tanzu/octant

https://reference.octant.dev/?path=/story/docs-intro–page

以上是关于Kubernetes:分享一个可以展示资源视图的 K8s开源 Web/桌面 客户端工具 Octant的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes:通过 kubectl 插件 ketall 查看所有对象资源

Terraform入门教程,示例展示管理Docker和Kubernetes资源

资源分享实战Docker到Kubernetes技术系列视频教程

Kubernetes运维之微服务生产环境采坑分享

Kubernetes:通过轻量化工具 kubespy 实时观察YAML资源变更

Kubernetes:通过轻量化工具 kubespy 实时观察YAML资源变更