kubernetes 集群_使用k9s加速Kubernetes集群的管理

kubernetes 集群

通常,我有关Kubernetes管理的文章充满了用于群集管理的kubectl命令。 但是,最近有人向我指出了k9s项目,它是一种快速的方式来查看和解决Kubernetes中的日常问题。 这是对我的工作流程的巨大改进,我将在本教程中向您展示如何入门。

可以在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

对于此介绍,我们将使用k9s存储库中的默认config.yml建议。 维护人员注意,此格式可能会更改,因此我们可以在此处检查最新版本。


   
   
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基于文本的用户界面(UI)。 没有名称空间的标志,它将显示默认名称空间中的Pod。

K9s screenshot

如果您在具有许多Pod的环境中运行,则默认视图可能会令人难以承受。 或者,我们可以专注于给定的名称空间。 退出应用程序并运行k9s -n <namespace> ,其中<namespace>是现有的名称空间。 在下面的图片中,我运行了k9s -n minecraft,它显示了我破碎的豆荚

K9s screenshot

因此,一旦您启动并运行了k9,就可以快速完成很多事情。

通过快捷键浏览k9。 我们始终可以使用箭头键和Enter键来选择列出的项目。 还有许多其他通用按键可以导航到不同的视图:

  • 0-显示所有名称空间中的所有Pod
K9s screenshot
  • d-描述选定的吊舱
K9s screenshot
  • l-显示所选容器容器的日志
Using k9s to show Kubernetes pod logs

您可能会注意到k9s设置为使用Vim命令键 ,包括使用JK键上下移动。 祝您好运,emacs用户:)

快速查看不同的Kubernetes资源

是否需要去一个不是豆荚的东西? 是的,我也是。 当我们输入冒号(“:”)键时,有许多可用的快捷方式。 从那里,您可以使用以下命令在那里浏览。

  • :svc —跳转到服务视图。
K9s screenshot
  • :deploy —跳转到部署视图。
K9s screenshot
K9s screenshot
  • :namespace —跳回到名称空间视图。
K9s screenshot
  • cj-跳转到cronjobs视图以查看集群中计划的作业。
K9s screenshot

该应用程序中最常用的工具是键盘。 要在任何页面上向上或向下,请使用箭头键。 如果您需要退出,请记住使用Vim键绑定。 输入:q并按Enter键离开。

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

出现问题时,k9s有何帮助? 通过一个例子,我让几个吊舱由于配置错误而死亡。 在下面,您可以看到崩溃的可怕的Hello部署。 突出显示它后,按d运行describe命令以查看引起故障的原因。

K9s screenshot
K9s screenshot

略读事件并不能告诉我们失败的原因。 接下来,我按esc键,然后突出显示窗格并输入<shift-l>来检查日志。

K9s screenshot

不幸的是,日志也没有提供任何帮助(可能是因为从未正确配置部署),并且pod不会启动。

然后我ESC键一步了,我会看,如果删除吊舱将这个问题的关心。 为此,我突出显示窗格并使用<ctrl-d> 。 值得庆幸的是,k9s在删除之前提示用户。

K9s screenshot

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

在这一点上,我将重复查看日志,描述资源,并使用e快捷方式甚至编辑正在运行的Pod来解决问题。 在这种特定情况下,发生故障的Pod不会配置为在此环境中运行。 因此,让我们删除部署以停止我们所在的崩溃-然后-重新引导循环。

我们可以通过输入:deploy并单击Enter来进行部署。 从那里我们突出显示并按<ctrl-d>删除。

K9s screenshot
K9s screenshot

部署的麻烦就消失了! 仅需敲击几次键即可清理此失败的部署。

k9s是可定制的

因此,此应用程序具有大量自定义选项,具体取决于UI的配色方案。 以下是您可能感兴趣的一些可编辑选项:

整个应用程序都是在YAML文件中配置的,因此任何Kubernetes管理员都可以熟悉自定义。

使用k9s简化生活

我倾向于以一种非常手动的方式来管理我团队的系统,而更多的是用于大脑训练。 当我第一次听说k9s时,我以为“这只是懒惰的Kubernetes”,所以我将其驳回,然后回到任何地方进行手动干预。 实际上,在处理积压工作时,我每天都开始使用它,而让我震惊的是它比单独使用kubectl快得多。 现在我是一名convert依者。

了解您的工具并掌握做某事的“艰难方式”非常重要。 重要的是要记住,就管理而言,更聪明而不是更努力地工作很重要。 使用k9s是我实现这一目标的方式。 我猜我们可以称之为懒惰的Kubernetes管理,这没关系。

翻译自: https://opensource.com/article/20/5/kubernetes-administration

kubernetes 集群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值