Kubernetes:基于命令行终端UI的管理工具 K9s
写在前面
K9s
是一个基于终端UI的 K8S 管理工具- 博文内容为
k9s
在 windows、Linux 以及docker 安装Demo - 简单的 热键使用。
- 理解不足小伙伴帮忙指正
我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫尔曼·黑塞《德米安》
K9s
是一个基于终端的管理 Kubernetes
集群的工具,旨在简化 Kubernetes
集群管理。和 kubebox
有些类似, K9s 同样可以持续监控集群的变化,并且可以提供与集群资源交互的快捷命令。如果说管理集群受限,只有一个 终端你可以使用,那么 k9s
是一个不错的选择.
K9s
有一些特殊功能,可以显示 Kubernetes 资源之间依赖关系的 xray
、显示集群高级状态的 pulse
,以及扫描和报告已部署资源和配置问题的popeye
。
安装下载
window 客户端安装
PS C:\Program Files> choco install k9sChocolatey v1.1.0Installing the following packages:k9sBy installing, you accept licenses for the packages.Progress: Downloading kubernetes-cli 1.26.0... 100%Progress: Downloading k9s 0.26.7... 100%kubernetes-cli v1.26.0 [Approved]kubernetes-cli package files install completed. Performing other installation steps.The package kubernetes-cli wants to run 'chocolateyInstall.ps1'.Note: If you don't run this script, the installation will fail.Note: To confirm automatically next time, use '-y' or consider:choco feature enable -n allowGlobalConfirmationDo you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): allExtracting 64-bit C:\ProgramData\chocolatey\lib\kubernetes-cli\tools\kubernetes-client-windows-amd64.tar.gz to C:\ProgramData\chocolatey\lib\kubernetes-cli\tools...C:\ProgramData\chocolatey\lib\kubernetes-cli\toolsExtracting 64-bit C:\ProgramData\chocolatey\lib\kubernetes-cli\tools\kubernetes-client-windows-amd64.tar to C:\ProgramData\chocolatey\lib\kubernetes-cli\tools...C:\ProgramData\chocolatey\lib\kubernetes-cli\tools ShimGen has successfully created a shim for kubectl-convert.exe ShimGen has successfully created a shim for kubectl.exe The install of kubernetes-cli was successful. Software installed to 'C:\ProgramData\chocolatey\lib\kubernetes-cli\tools'k9s v0.26.7 [Approved]k9s package files install completed. Performing other installation steps.Extracting 64-bit C:\ProgramData\chocolatey\lib\k9s\tools\k9s_Windows_x86_64.tar.gz to C:\ProgramData\chocolatey\lib\k9s\tools...C:\ProgramData\chocolatey\lib\k9s\toolsExtracting 64-bit C:\ProgramData\chocolatey\lib\k9s\tools\k9s_Windows_x86_64.tar to C:\ProgramData\chocolatey\lib\k9s\tools...C:\ProgramData\chocolatey\lib\k9s\tools ShimGen has successfully created a shim for k9s.exe The install of k9s was successful. Software installed to 'C:\ProgramData\chocolatey\lib\k9s\tools'Chocolatey installed 2/2 packages. See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).PS C:\Program Files>
下载之后,需要准备好 kubeconfig
文件,放到默认加载的位置
PS C:\Users\山河已无恙\.kube> ls 目录: C:\Users\山河已无恙\.kubeMode LastWriteTime Length Name---- ------------- ------ ----d----- 2023/1/14 7:48 cache-a---- 2023/1/14 10:19 5682 configPS C:\Users\山河已无恙\.kube> cat .\configapiVersion: v1clusters:- cluster: certificate-authority-data: .......................
通过命令行启动
PS C:\ProgramData\chocolatey\lib\k9s\tools> .\k9s.exe
Linux 客户端安装
下载安装包
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k9s]└─$curl -sS https://webinstall.dev/k9s | bashThanks for using webi to install 'k9s@stable' on 'Linux/x86_64'.Have a problem? Experience a bug? Please let us know: https://github.com/webinstall/webi-installers/issuesLovin' it? Say thanks with a Star on GitHub: https://github.com/webinstall/webi-installersDownloading k9s fromhttps://github.com/derailed/k9s/releases/download/v0.26.7/k9s_Linux_x86_64.tar.gzfailed to download from https://github.com/derailed/k9s/releases/download/v0.26.7/k9s_Linux_x86_64.tar.gz
解压直接运行
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k9s]└─$tar -zxvf k9s_Linux_x86_64.tar.gzLICENSEREADME.mdk9s┌──[root@vms81.liruilongs.github.io]-[~/ansible/k9s]└─$lsk9s k9s_Linux_x86_64.tar.gz LICENSE README.md┌──[root@vms81.liruilongs.github.io]-[~/ansible/k9s]└─$./k9s
查看当前集群资源的统计信息。
docker 安装
也可以通过docker 直接运行
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k9s]└─$docker run --rm -it -v ~/.kube/config:/root/.kube/config docker.io/derailed/k9s
查看资源状态信息
查看资源依赖关系
热键
Action | Command | Comment |
---|---|---|
Show active keyboard mnemonics and help | ? |
|
Show all available resource alias | ctrl-a |
|
To bail out of K9s | :q , ctrl-c |
|
View a Kubernetes resource using singular/plural or short-name | : po⏎ |
accepts singular, plural, short-name or alias ie pod or pods |
View a Kubernetes resource in a given namespace | : alias namespace⏎ |
|
Filter out a resource view given a filter | / filter⏎ |
Regex2 supported ie `fred |
Inverse regex filter | / ! filter⏎ |
Keep everything that doesn't match. |
Filter resource view by labels | / -l label-selector⏎ |
|
Fuzzy find a resource given a filter | / -f filter⏎ |
|
Bails out of view/command/filter mode |
|
|
Key mapping to describe, view, edit, view logs,... | d ,v , e , l ,... |
|
To view and switch to another Kubernetes context | : ctx⏎ |
|
To view and switch to another Kubernetes context | : ctx context-name⏎ |
|
To view and switch to another Kubernetes namespace | : ns⏎ |
|
To view all saved resources | : screendump or sd⏎ |
|
To delete a resource (TAB and ENTER to confirm) | ctrl-d |
|
To kill a resource (no confirmation dialog!) | ctrl-k |
|
Launch pulses view | : pulses or pu⏎ |
|
Launch XRay view | : xray RESOURCE [NAMESPACE]⏎ |
RESOURCE can be one of po, svc, dp, rs, sts, ds, NAMESPACE is optional |
Launch Popeye view | : popeye or pop⏎ |
See popeye |
博文参考
https://github.com/derailed/k9s
https://k9scli.io/