天天看點

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

作者:山河已無恙i

寫在前面

  • 博文内容主要為 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

           

下載下傳好之後安裝,之後桌面上會有一個圖示

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

點選啟動它,第一次打開會提示輸入 kubeconfig 檔案。

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant
┌──[[email protected]]-[/var/run]
└─$cat ~/.kube/config
           

然後點選加載,就可以檢視叢集資訊

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

哈,可能我機器 CPU 不行,感覺桌面端很耗資源。

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

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
           
K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

輸入 kubeconfig 檔案資訊

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

可以更換主題,檢視叢集資訊。

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

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
           

解壓檢視版本資訊。

┌──[[email protected]]-[~/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
┌──[[email protected]]-[~/ansible/octant]
└─$octant_0.25.1_Linux-64bit/octant version
Version:  0.25.1
Git commit:  f16cbb951905f1f8549469dfc116ca16cf679d46
Built:  2022-02-24T23:02:15Z
           

檢視幫助文檔了解啟動資訊

┌──[[email protected]]-[~/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 會在啟動時候自動打開預設浏覽器,并且隻監聽本地對 指定端口的通路。

┌──[[email protected]]-[~/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 的内部環境

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

檢視日志資訊

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

檢視資源依賴關系

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

不對不說,octant 很消耗資源,尤其是對CPU,是以不太建議部署到叢集相關的節點。

K8s:分享一個展示資源視圖的 K8s開源 Web/桌面 用戶端工具Octant

關于 octant 和小夥伴分享到這裡,安裝很簡單,趕快去嘗試吧。

博文參考

https://octant.dev/

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

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

繼續閱讀