K9s

用 Kubernetes CLI 来轻松管理你的集群!「? Kubernetes CLI To Manage Your Clusters In Style!」

Github stars Tracking Chart

K9s -- 用 Kubernetes CLI 轻松管理你的集群!

K9s 提供了与 Kubernetes 集群交互的终端 UI。这个项目的目的是使浏览、观察和管理应用程序更加容易。K9s 不断监视 Kubernetes 的变化,并提供后续命令来与所观察的资源交互。

文档

关于安装、使用、定制和提示,请参考我们的 K9s 文档网站。

Slack频道

想和你的K9s同好们讨论K9s的功能,或者干脆表示你对这个工具的支持?

安装

K9s 可在 Linux、macOS 和 Windows 平台上使用。

  • Linux、Windows 和 Mac 的二进制文件在 release 页面中以 tarballs 的形式提供。
  • 通过 macOS 的 Homebrew 或 Linux 的 LinuxBrew。
    brew install k9s
            
  • Via MacPorts
    sudo port install k9s
            
  • On Arch Linux
    pacman -S k9s
            
  • On OpenSUSE Linux distribution
    zypper install k9s
            
  • Via Scoop for Windows
    scoop install k9s
            
  • Via Chocolatey for Windows
    choco install k9s
            
  • Via a GO install
    # NOTE: The dev version will be in effect!
    go get -u github.com/derailed/k9s
            

从源代码构建

K9s 目前使用的是 go v1.14 或以上版本。为了从源码中构建 K9,你必须。

  1. 克隆 repo
  2. 构建并运行可执行文件
    make build && ./execs/k9s
        

使用Docker运行

你可以通过挂载你的 KUBECONFIG,将 k9s 作为一个 Docker 容器运行。

docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s

对于默认路径,应该是

docker run --rm -it -v ~/.kube/config:/root/.kube/config quay.io/derailed/k9s

预备检查(PreFlight Checks)

  • K9s 采用 256 色终端模式。在 `Nix 系统中要确保 TERM 被相应设置。
    <span class="pl-k">export</span> TERM=xterm-256color
        
  • 为了发出清单编辑命令,请确保你的 EDITOR 环境已被设置。
    # Kubectl edit command will use this env var.</span>
    export EDITOR=my_fav_editor
    # Should your editor deals with streamed vs on disk files differently, also set...
    export K9S_EDITOR=my_fav_editor
        

命令行

# List all available CLI options
k9s help
# To get info about K9s runtime (logs, configs, etc..)
k9s info
# To run K9s in a given namespace
k9s -n mycoolns
# Start K9s in an existing KubeConfig context
k9s --context coolCtx
# Start K9s in readonly mode - with all modification commands disabled
k9s --readonly

日志

考虑到 ui 的性质,k9s 确实会产生一个特定位置的日志。要查看日志并开启调试模式,请使用以下命令。

k9s info
# Will produces something like this
#  ____  __.________
# |    |/ _/   __   \______
# |      < \____    /  ___/
# |    |  \   /    /\___ \
# |____|__ \ /____//____  >
#         \/            \/
#
# Configuration:   /Users/fernand/.k9s/config.yml
# Logs:            /var/folders/8c/hh6rqbgs5nx_c_8k9_17ghfh0000gn/T/k9s-fernand.log
# Screen Dumps:    /var/folders/8c/hh6rqbgs5nx_c_8k9_17ghfh0000gn/T/k9s-screens-fernand
# To view k9s logs
tail -f /var/folders/8c/hh6rqbgs5nx_c_8k9_17ghfh0000gn/T/k9s-fernand.log
# Start K9s in debug mode
k9s -l debug

按键绑定

K9s 使用别名来浏览大部分 K8s 资源。

Action Command Comment
显示活动的键盘口令和帮助 ?
显示所有可用的资源别名 ctrl-a
退出 K9s :q, ctrl-c
使用单数/复数或短名查看 Kubernetes 资源 :po⏎ 接受单数、复数、短名或别名,即 pod 或 pods。
查看给定命名空间中的 Kubernetes 资源 :alias namespace⏎
用给定的过滤器 filter 过滤出一个资源视图。 /filter⏎
按标签过滤资源视图 /-l label-selector⏎
模糊查找给定过滤器的资源 /-f filter⏎
退出视图/命令/过滤模式 <esc>
描述、查看、编辑、查看日志... d,v, e, l,...
查看并切换到另一个 Kubernetes 上下文 :ctx⏎
要查看并切换到另一个 Kubernetes 上下文 :ctx context-name⏎
要查看和切换到另一个 Kubernetes 命名空间 :ns⏎
要查看所有保存的资源 :screendump or sd⏎
要删除资源(TAB和ENTER确认) ctrl-d
要杀死一个资源(没有确认对话框!) ctrl-k
启动 pulses view :pulses or pu⏎
启动 XRay view :xray RESOURCE [NAMESPACE]⏎ RESOURCE 可以是 po、svc、dp、rs、ts、ds 中的一个,NAMESPACE 是可选的。



(The first version translated by vz on 2020.08.29)

Main metrics

Overview
Name With Ownerderailed/k9s
Primary LanguageGo
Program languageMakefile (Language Count: 4)
PlatformKubernetes, Linux, Mac, Windows
License:Apache License 2.0
所有者活动
Created At2019-01-25 18:46:02
Pushed At2025-04-25 06:01:05
Last Commit At2025-04-25 08:01:04
Release Count245
Last Release Namev0.50.4 (Posted on 2025-04-19 12:08:55)
First Release Name0.1.0 (Posted on 2019-02-01 18:05:09)
用户参与
Stargazers Count29.5k
Watchers Count153
Fork Count1.9k
Commits Count1.9k
Has Issues Enabled
Issues Count2036
Issue Open Count549
Pull Requests Count791
Pull Requests Open Count72
Pull Requests Close Count400
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

K9s - Kubernetes CLI To Manage Your Clusters In Style!

K9s provides a curses based terminal UI to interact with your Kubernetes clusters.
The aim of this project is to make it easier to navigate, observe and manage
your applications in the wild. K9s continually watches Kubernetes
for changes and offers subsequent commands to interact with observed Kubernetes resources.


Go Report Card
golangci badge
codebeat badge
Build Status
Docker Repository on Quay
release
License
Releases


Slack Channel

Wanna discuss K9s features with your fellow K9sers or simply show your support for this tool?


Installation

K9s is available on Linux, macOS and Windows platforms.

  • Binaries for Linux, Windows and Mac are available as tarballs in the release page.

  • Via Homebrew or LinuxBrew for macOS and Linux

    brew install derailed/k9s/k9s
    
  • Via MacPorts

    sudo port install k9s
    
  • On Arch Linux

    pacman -S k9s
    
  • Via Scoop for Windows

    scoop install k9s
    
  • Building from source
    K9s was built using go 1.13 or above. In order to build K9 from source you must:

    1. Clone the repo

    2. Add the following command in your go.mod file

      replace (
        github.com/derailed/k9s => MY_K9S_CLONED_GIT_REPO
      )
      
    3. Build and run the executable

      go run main.go
      

PreFlight Checks

  • K9s uses 256 colors terminal mode. On `Nix system make sure TERM is set accordingly.

    export TERM=xterm-256color
    

Screenshots

  1. Pods
  2. Logs
  3. Deployments

Demo Video


The Command Line

# List all available CLI options
k9s help
# To get info about K9s runtime (logs, configs, etc..)
k9s info
# To run K9s in a given namespace
k9s -n mycoolns
# Start K9s in an existing KubeConfig context
k9s --context coolCtx
# Start K9s in readonly mode - with all modification commands disabled
k9s --readonly

Key Bindings

K9s uses aliases to navigate most K8s resources.