K9s-Kubernetes的高级控制台

K9s Kubernetes CLI,能够个性化方式管理您的集群!html

参考:git

Why K9s?

首先咱们得面对现实——Kubernetes及其周边生态系统的运营方式正变得愈来愈复杂。集群管理须要大量工具加以配合。当我在集群之上进行平常运营时,和你们同样,我也须要观察本身使用的各类Kubernetes资源、深刻了解配置、设置以及在任务没能按照预期完成时追踪问题。这个流程一般须要使用大量使人头痛、易于混淆的命令,安装/操做用途单一的CLI工具,同时配合大量自定义bash脚本。除此以外,还有各种运行状态调整须要考虑……github

我知道,Kubernetes做为一款技术解决方案正面临着诸多争议,但我我的一般选择在本地开发代码并面向本地minikube实例,最后才进行Docker化转换。通常来说,我不须要在本身的集群之上部署整个应用程序来处理任何给定服务。我发现本身的代码以及配置与资源清单是一种连续、而非独立存在的活动。所以,个人平常Kubernetes例程一般包括启动一个或多个终端窗口,其中又细分为各种选项卡/窗格,又有部分选项卡/窗格内容纳着用于监控资源的监控命令,外加用于发出kubectl并构建命令的开放CLI。api

K9s工做状态

终于有一天,我对这个极为烧脑的流程作出一番考量,并意识到彻底能够经过一款简单的CLI工具来观察Kubernetes资源,在各类资源之间切换,检查清单、日志、监控事件并执行Pod,从而确保本身宝贵的桌面空间不至于被大量终端窗格所占据……bash

所以,我编写了一款用于实现上述目标的工具!我将其命名为K9s,其工做效果以下图所示。 
640?wx_fmt=pngK9s Pod视图
这是一款基于终端的UI,会以特定时间间隔(默认为2秒)监控Kubernetes资源,并容许我查看本身集群中的内容。app

我可使用ctx<enter>命令在开发集群与生产集群之间快速导航。这款CLI还容许我按照命名空间进行过滤操做,并对大部分Kubernetes资源执行只读操做(这项功能仍在开发当中……)。若是集群卡住,我可使用?<enter>命令列出全部受支持的资源。工具

K9s安装与使用

安装

K9s 可用于 Linux, OSX 和 Windows 平台。spa

  • 对于 Linux, Windows 和 Mac 的二进制安装包,下载到 release 页面。命令行

  • 对于 OSX,可使用 Homebrew安装:日志

    brew tap derailed/k9s && brew install k9s
  • 从源码构建 K9s,使用 go 1.12 以上版本,须要:

    1. Clone the repo

    2. Set env var GO111MODULE=on

    3. 添加下面行到 go.mod 文件

    4. replace (
        github.com/derailed/k9s => MY_K9S_CLONED_GIT_REPO
      )

       

    5. 构建并运行:  

    6. go run main.go

       


命令行

# List all available CLI options
k9s -h
# 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

预先检查


K9s config file ($HOME/.k9s/config.yml)

K9s 保存配置 dot file 在 home directory

NOTE: This is still in flux and will change while in pre-release stage!

k9s:
  # Indicates api-server poll intervals.
  refreshRate: 2
  # Indicates log view maximum buffer size. Default 1k lines.
  logBufferSize: 200
  # Indicates how many lines of logs to retrieve from the api-server. Default 200 lines.
  logRequestSize: 200
  # Indicates the current kube context. Defaults to current context
  currentContext: minikube
  # Indicates the current kube cluster. Defaults to current context cluster
  currentCluster: minikube
  # Persists per cluster preferences for favorite namespaces and view.
  clusters:
    cooln:
      namespace:
        active: coolio
        favorites:
        - cassandra
        - default
      view:
        active: po
    minikube:
      namespace:
        active: all
        favorites:
        - all
        - kube-system
        - default
      view:
        active: dp

快捷键绑定

K9s uses aliases to navigate most K8s resources.

Command Result Example
:alias<ENTER> View a Kubernetes resource :po<ENTER>
? Show keyboard shortcuts and help  
Ctrl-a Show all available resource alias select+<ENTER> to view
/filterENTER> Filter out a resource view given a filter /bumblebeetuna
<Esc> Bails out of command mode  
d,vel,... Key mapping to describe, view, edit, view logs,... d (describes a resource)
:ctx<ENTER> To view and switch to another Kubernetes context :+ctx+<ENTER>
:qCtrl-c To bail out of K9s
相关文章
相关标签/搜索