使用k9s简化Kubernetes集群的管理!

即将开播:5月14日,Jenkins在K8S下的三种部署流程和实战演示

可以在Mac、Windows和Linux上进行安装。可以在此处针对每款操作系统的说明。完成安装后继续下一步。

我将使用Linux和Minikube,后者是在个人计算机上运行Kubernetes的轻量级方法。按照本教程说明文档装它。

设置k9s配置文件

一旦安装了k9s应用程序,最好从help命令入手。

$ k9s help 
K9s is a CLI to view and manage your Kubernetes clusters. 
Usage: 
  k9s [flags] 
  k9s [command] 
Available Commands: 
  help        Help about any command 
  info        Print configuration info 
  version     Print version/build info 
Flags: 
  -A, --all-namespaces                 Launch K9s in all namespaces 
      --as string                      Username to impersonate for the operation 
      --as-group stringArray           Group to impersonate for the operation 
      --certificate-authority string   Path to a cert file for the certificate authority 
      --client-certificate string      Path to a client certificate file for TLS 
      --client-key string              Path to a client key file for TLS 
      --cluster string                 The name of the kubeconfig cluster to use 
  -c, --command string                 Specify the default command to view when the application launches 
      --context string                 The name of the kubeconfig context to use 
      --demo                           Enable demo mode to show keyboard commands 
      --headless                       Turn K9s header off 
  -h, --help                           help for k9s 
      --insecure-skip-tls-verify       If true, the server's caCertFile will not be checked for validity 
      --kubeconfig string              Path to the kubeconfig file to use for CLI requests 
  -l, --logLevel string                Specify a log level (info, warn, debug, error, fatal, panic, trace) (default "info") 
  -n, --namespace string               If present, the namespace scope for this CLI request 
      --readonly                       Disable all commands that modify the cluster 
  -r, --refresh int                    Specify the default refresh rate as an integer (sec) (default 2) 
      --request-timeout string         The length of time to wait before giving up on a single server request 
      --token string                   Bearer token for authentication to the API server 
      --user string                    The name of the kubeconfig user to use 
Use "k9s [command] --help" for more information about a command. 

如你所见,我们可以用k9s配置许多功能。要开始的唯一步骤是编写一个配置文件。info命令会把我们指向该应用程序查找的方向。

$ k9s info 
 ____  __.________ 
|    |/ _/   __   \______ 
|      < \____    /  ___/ 
|    |  \   /    /\___ \ 
|____|__ \ /____//____  > 
        \/            \/ 
Configuration:   /Users/jess/.k9s/config.yml 
Logs:            /var/folders/5l/c1y1gcw97szdywgf9rk1100m0000gn/T/k9s-jess.log 
Screen Dumps:    /var/folders/5l/c1y1gcw97szdywgf9rk1100m0000gn/T/k9s-screens-jess 
要添加文件,创建目录(如果之前没有),然后添加一个。 
$ mkdir -p ~/.k9s/ 
$ touch ~/.k9s/config.yml 

要添加文件,创建目录(如果之前没有),然后添加一个。

$ mkdir -p ~/.k9s/  

$ touch ~/.k9s/config.yml 

就本文而言,我们将使用来自k9s存储库的默认的config.yml推荐。维护者指出,该格式随时有变,因此我们可以在此(https://github.com/derailed/k9s#k9s-configuration)获取最新版本。

k9s: 
  refreshRate: 2 
  headless: false 
  readOnly: false 
  noIcons: false 
  logger: 
    tail: 200 
    buffer: 500 
    sinceSeconds: 300 
    fullScreenLogs: false 
    textWrap: false 
    showTime: false 
  currentContext: minikube 
  currentCluster: minikube 
  clusters: 
    minikube: 
      namespace: 
        active: "" 
        favorites: 
       - all 
        - kube-system 
        - default 
      view: 
        active: dp 
  thresholds: 
    cpu: 
      critical: 90 
      warn: 70 
    memory: 
      critical: 90 
      warn: 70 

我们设置k9s以寻找本地minikube配置,于是我要证实minikube已联机、随时可用。

$ minikube status 
host: Running 
kubelet: Running 
apiserver: Running 
kubeconfig: Configured 

运行k9s以探究Kubernetes集群

由于配置文件已设定、指向本地集群,我们现在可以运行k9s命令。

$ k9s 

一旦你启动了k9s,k9s文本型用户界面(UI)会弹出。没有命名空间的flag,它会显示默认命名空间中的pod。

使用k9s简化Kubernetes集群的管理!
图1

如果你在有许多pod的环境中运行,默认视图可能让人不知所措。另外,我们可以专注于特定的命名空间。退出该应用程序,运行k9s -n ,其中是现有的命名空间。在下图中,我运行k9s -n minecraft,它显示我那个出故障的pod。

使用k9s简化Kubernetes集群的管理!
图2

所以一旦k9s启动起来,你可以迅速处理诸多事务。

可通过快捷键来浏览操控k9s。我们总是可以使用箭头键和回车键选择所列的项。有几个另外的通用键来查看不同的视图:

0—显示所有命名空间中的所有pod。

使用k9s简化Kubernetes集群的管理!
图3

d—描述所选择的pod。

使用k9s简化Kubernetes集群的管理!
图4

l—显示所选择的pod的日志。

使用k9s简化Kubernetes集群的管理!
图5

你可能注意到k9s已设置为使用Vim命令键,包括使用J键和K键上下移动。

快速查看不同的Kubernetes资源

是否需要查看不是pod的资源?输入冒号(“:”)键后有许多快捷方式可用。然后,你可以使用以下命令来浏览。

:svc——跳转到服务视图。

使用k9s简化Kubernetes集群的管理!
图6

:deploy——跳转到部署视图。

使用k9s简化Kubernetes集群的管理!
图7

:rb——跳转到角色绑定视图,面向基于角色的访问控制(RBAC)管理。

使用k9s简化Kubernetes集群的管理!
图8

:namespace——跳回到命名空间视图。

使用k9s简化Kubernetes集群的管理!
图9

:cj——跳转到计划任务视图,查看集群中的计划任务。

使用k9s简化Kubernetes集群的管理!
图10

对该应用程序而言最常用的工具是键盘;想在任何页面上向上或向下,使用箭头键。如果需要退出,记得使用Vim键绑定。输入:q,按回车键离开。

使用k9s对Kubernetes排除故障的示例

出现问题时,k9s有何帮助?为了举例说明,我让几个pod因配置错误而失效。下面你可以看到崩溃的Hello部署。一旦高亮显示,按d运行describe命令,查看导致故障的原因。

使用k9s简化Kubernetes集群的管理!
图11

使用k9s简化Kubernetes集群的管理!
图12

略读事件并不能告诉我们故障的原因。接下来,我按esc键,通过高亮显示pod并输入来查看日志。

使用k9s简化Kubernetes集群的管理!
图13

遗憾的是,日志也没有提供任何帮助(可能是由于从未正确配置部署),pod不会启动。

然后我按esc退出,查看删除pod会不会解决此问题。为此,我高亮显示pod并使用。k9s在删除之前提示用户。

使用k9s简化Kubernetes集群的管理!
图14

虽然我确实删除了pod,但部署资源仍存在,因此新的pod会出现。无论出于何种原因(我们尚不知道),它也会继续重启、崩溃。

我将重复查看日志、描述资源,并使用e快捷方式来编辑运行中的pod来解决问题。在这种特定情况下,出故障的pod未配置成在该环境下运行。因此,不妨删除部署以停止我们遇到的崩溃后重新启动循环。

我们可以通过输入:deploy并点击回车键来进入部署。之后,我们高亮显示,并按删除。

使用k9s简化Kubernetes集群的管理!
图15

使用k9s简化Kubernetes集群的管理!
图16

这证明部署不见了!仅需敲几下键即可清理这个出故障的部署。

k9s可灵活定制

因此,该应用程序有大量定制选项,连UI的配色方案都可以定制。以下是你可能感兴趣的几个可编辑选项:

  • 调整放置config.yml文件的位置
  • 将自定义别名添加到alias.yml文件
  • 在hotkey.yml文件中创建自定义热键
  • 探究可用的插件或自行编写插件

相关推荐