k9s –最好的Kubernetes CLI,以风格管理集群

时间:2020-02-23 14:31:45  来源:igfitidea点击:

我们如何管理Kubernetes集群?
我们是否登录到仪表板以查看Pod,网络策略以及其他方面的情况?
太酷了,但是今天我们的任务是让我们考虑另一种选择,尤其是如果我们对终端机情有独钟并且在仪表板上时会错过它。

K9s提供了一个终端UI来与Kubernetes集群进行交互。
该项目的目的是简化野外浏览,观察和管理应用程序的过程。
K9s持续监视Kubernetes的更改,并提供后续命令以与我们观察到的资源进行交互。

k9s的功能

k9s提供信息,触手可及:跟踪Kubernetes集群中运行的资源的实时活动标准或者CRD ?:处理Kubernetes标准资源和自定义资源定义集群指标:跟踪与资源关联的实时指标例如Pod,容器和节点。
欢迎高级用户!:提供标准的群集管理命令,例如日志,扩展,端口转发,重新启动。
我们还可以定义自己的命令快捷方式,以通过命令别名和热键进行快速导航。
更重要的是,有一个插件支持来扩展K9以创建我们自己的集群命令以及强大的过滤模式,以允许用户向下钻取并查看与工作负载相关的资源。
错误缩放:直接向下钻取到群集资源出了什么问题.Skinnable and Customizable:通过K9s皮肤定义自己的外观。
定制/安排要在每个资源基础上显示的列。
窄还是宽?
:提供切换以查看最小或者完整资源定义多资源视图:通过Pulses和XRay视图提供群集资源的概述.k9s具有RBAC !:它支持查看RBAC规则,例如群集/角色及其关联的绑定。
反向查找可以断言用户/组或者ServiceAccount在集群上可以做什么。
遍历:K9s提供了Kubernetes资源及其关联资源的轻松遍历。

概述

K9s是多平台的,因此可在Linux,macOS和Windows平台上使用。
简而言之,没有任何借口不让它在环境中运行并猜测是什么,我们将在这一刻看到如何安装它。

安装K9s

K9s已在多平台中提及,下一节将介绍如何在一些流行的发行版以及Windows和macOS上安装它。
让我们开始吧。

在macOS上安装k9s

如果我们是Mac人士,那么我们很可能知道Homebrew,并且正是通过它,我们才能安装k9s。
就像自制程序一样简单,以下是我们需要运行的唯一命令。

brew install k9s

通过适用于macOS的Homebrew或者适用于Linux的LinuxBrew,如果需要,可以使用MacPorts。
MacPorts项目是一个开源社区计划,旨在设计一个易于使用的系统,以在Mac操作系统上编译,安装和升级命令行,基于X11或者Aqua的开源软件。

通过MacPorts

sudo port install k9s

在Arch Linux上安装

要在我们最喜欢的Arch Linux计算机上获得k9,pacman会为我们提供。
只需运行以下命令:

pacman -S k9s

在OpenSUSE Linux发行版上安装k9s

好吧,好吧,OpenSUSE伙计们!我们在这里也完全被覆盖。
通过漂亮的zypper安装K9,如下所示。

zypper install k9s

在Windows上安装k9s

可以想象,在Windows上安装k9s非常简单。
我们可以使用Scoop或者我最喜欢的Chocolatey.Via Scoop for Windows通过Scoop通过以下步骤安装k9s

scoop install k9s

通过Chocolatey for Windows,通过Chocolatey如下安装k9s

choco install k9s

如果我们没有Chocolatey,可以签出"使用Chocolatey从命令提示符(CLI)管理Windows应用程序"教程。

通过GO安装来安装k9s

k9s的开发版本将生效!

go get -u github.com/derailed/k9s

我们也可以从源代码构建K9

K9s当前正在使用go v1.14或者更高版本。
在Linux上按以下步骤安装Go v1.15.2.

wget https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xf go1.15.2.linux-amd64.tar.gz
$vim ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin

然后获取文件以保留配置。

source ~/.bash_profile

为了从源代码构建K9,我们必须先克隆存储库,然后再继续。

cd ~
git clone https://github.com/derailed/k9s.git
cd ~/k9s

生成并运行可执行文件

$make build && ./execs/k9s
go: downloading k8s.io/client-go v0.18.8
go: downloading k8s.io/apimachinery v0.18.8
go: downloading k8s.io/metrics v0.18.8
go: downloading gopkg.in/yaml.v2 v2.2.8
go: downloading k8s.io/api v0.18.8
go: downloading k8s.io/klog v1.0.0
go: downloading github.com/sahilm/fuzzy v0.1.0
go: downloading github.com/gdamore/tcell v1.3.0
go: downloading github.com/derailed/popeye v0.8.10
go: downloading github.com/hashicorp/golang-lru v0.5.1
go: downloading sigs.k8s.io/structured-merge-diff/v3 v3.0.0
go: downloading github.com/fvbommel/sortorder v1.0.1

完成后,我们应该在下面看到一个共享的界面。

我们会注意到,k9s启动时没有捕获到的Kubernetes集群信息,这使我们进入了下一个重要步骤。

为K9s添加Kubernetes配置文件

关于k9s的好消息是,它会查看kubeconfig文件通常位于的默认目录。
那就是"~/.kube"。
如果我们拥有集群的kubeconfig文件,只需创建该目录并其中复制配置文件即可。

mkdir ~/.kube
cp config ~/.kube

之后,我们可以启动k9s,当我们看到所捕获的Kubernetes集群的详细信息意味着K9s已连接到集群时,我们可以确定脸庞会笑到满意。
在k9s克隆文件中,再次运行exec命令:

cd ~/k9s
./execs/k9s

使用K9s

现在,在完成K9的设置并成功连接到Kubernetes之后,我们可以使用几个键盘快捷键来开始与集群进行交互。

显示所有豆荚

如果我们希望在所有名称空间中显示所有窗格,则可以按一个简单的键盘键。
我们只需按零(0),所有AD连播都将如下图所示。

显示豆荚的日志

要显示给定Pod的日志,我们将需要使用上/下键盘键突出显示它,然后按字母" l"以获取日志。
相当直观!Pod生成的日志将按如下所示滴入。

查看完日志并希望返回后,请按Esc键。

显示别名

当我们想在一个会话中执行多个Kubernetes命令时,别名会使生活变得更加轻松。
要查看别名,请使用(Ctrl + a)键盘组合。

进入豆荚

开箱即用的k9s的另一个深思熟虑的功能是它可以使用一个键盘键将其封装到pod中。
它确实使工作尽可能轻松。
要封装到pod中,请使用向上/向下键将其突出显示,然后按" s"键。

描述一个豆荚

如果我们想调查资源的配置,则描述窗格可提供有关资源的全面信息/详细信息。
K9s通过减少与其他功能相同的操作,只需按下一个键即可简化此过程。
要描述AD连播,请使用上/下键盘键将其突出显示,然后按" d"键盘键。

显示所有键(帮助)

简而言之,要查看所有可用的键,我们需要按一个键,这就是问号(?)。