通常我们自己部署好k8s集群后,要么使用kubectl命令管理集群,要么使用bashbroadUI管理界面管理集群。最近发现了一个基于终端的、比较好用的项目,可以让我们快速查看、导航、观察和解决日常使用Kubernetes中的一些问题。这个就是k9s项目(之前的文章:7个轻松管理Kubernetes集群的工具有相关介绍)。工具介绍天天使用终端的你,可谓利器!k9s是一款基于curses的全屏终端UI管理工具,可以与Kubernetes集群交互,观察系统资源,切换各种资源,检查列表,日志,监控事件和执行Pod等,从而保证桌面空间不会被大量的终端面板占用。k9s以特定的时间间隔监控Kubernetes资源,默认为2秒,并允许查看自己集群中的内容。它提供运行中的pod、日志和部署的一目了然的可视化,以及对shell的快速访问。以下是该工具的主要功能:触手可及的信息跟踪Kubernetes集群中运行的资源的实时活动处理Kubernetes标准和自定义资源定义集群指标跟踪与Pod、容器和节点等资源相关的实时指标高级功能提供标准的集群管理命令,如日志、扩展、端口转发、重启定义您自己的命令快捷键以快速浏览命令别名和热键支持插件扩展k9s以创建您自己的集群操作管理命令强大的过滤模式,允许用户向下钻取并查看与工作负载相关的资源外观可自定义通过K9s皮肤定义您自己的外观自定义/排列列以按资源显示Pod-列出您的Pod状态和资源消耗日志-查看容器日志并与之交互RBAC-查看授权用户,方法等在你的集群上安装虽然安装比较简单,但是功能不是很强大!K9s使用Go语言开发,可以运行在Linux、macOS和Windows平台上。K9s安装非常简单。官方已经为我们提供了各个平台的二进制安装包,下载对应的版本即可。MacOS#Homebrew$brewinstallderailed/k9s/k9sLinux#LinuxBrew$brewinstallderailed/k9s/k9s#PacMan$pacman-Sk9sBuild#克隆repo$gitclonehttps://github.com/derailed/k9s.git#Build并运行可执行文件$makebuild&&./execs/k9sDocker#指定k8s配置文件路径$dockerrun--rm-it-v$KUBECONFIG:/root/.kube/configderailed/k9s#k8s默认路径配置文件$dockerrun--rm-it-v~/.kube/config:/root/.kube/configderailed/k9s用法k9s和dashboard可以理解为vim和idea的关系!K9s自带了一些参数,可以用来启动不同配置的工具,比如需要查看Pod相关信息。命令行启动参数#列出所有可用的CLI选项$k9shelp#获取有关K9s运行时的信息$k9sinfo$k9sinfologs$k9sinfoconfigs#在给定的命名空间中运行$k9s-nmycoolns#在pod视图中运行启动K9s$k9s-cpod#以只读模式启动K9s;该模式禁用所有修改命令$k9s--readonly操作快捷键使用简单,主要演示一些常用命令参数的作用!启动后,会弹出k9s的基于文本的用户界面。如果未指定命名空间标志,它将向您显示默认命名空间中的Pod。通过快捷键导航k9s,随时使用方向键和回车键选择列出的项目。你可能注意到k9s被设置为使用Vim命令键,包括使用J和K键上下移动等。k9s0:#DisplayallPodsinallnamespaces:#DescribetheselectedPodl:#DisplaythelogoftheselectedPody:#ViewYAMLfilee:#EditYAMLfiled:#Viewkeymapdescription:svc:#跳转到服务视图:deploy:#跳转到部署视图:namespace:#跳转到命名空间视图:cj:#跳转到cronjob视图,查看集群中调度了哪些作业:rb:#跳转到角色绑定视图,用于基于角色的访问控制(RBAC))managementk9sinfo运行这个命令会告诉我们应用程序应该在哪里找到它的配置文件。$k9s信息______.________||/_/________|<____/___/|||//___|____|__/____//____>/Userk.ml/configs/Configuration::/var/folders/5l/xxx/T/k9s-jess.logScreenDumps:/var/folders/5l/xxx/T/k9s-screens-jess#查看k9s日志$tail-f/var/folders/5l/xxx/T/k9s-jess.log#进入k9s调试模式$k9s-ldebugk9s-nnamespace通过指定namespace命名空间,我们可以专注于给定的命名空间。配置文件配置文件主要使用上述默认方式定义了一些K9s配置,并将其配置保存在主目录$HOME/.k9s的.k9s目录下。主配置文件名为config.yml并存储各种K9s特定位。k9s将更新此文件以存储当前视图和命名空间信息。#config.ymlk9s:#表示ui轮询间隔。默认2秒刷新率:2#设置为true以隐藏K9s标头。默认falseheadless:false#表示是否禁用删除/杀死/编辑等修改命令。默认为false只读:false#切换图标显示,因为并非所有终端都支持这些字符。noIcons:false#Logsconfigurationlogger:#定义要返回的行数。默认100tail:200#定义视图中允许的日志行总数。默认1000缓冲区:500#代表以秒为单位在日志时间轴中返回多远。默认为5minsinceSeconds:300#显示日志时全屏显示。默认falsefullScreenLogs:false#切换日志换行。默认falsetextWrap:false#切换日志行时间戳信息。DefaultfalseshowTime:false#表示当前的kube上下文。默认为当前上下文currentContext:minikube#表示th当前的kube集群。默认为当前上下文集群currentCluster:minikube#为最喜欢的命名空间和视图保留每个集群的首选项。集群:cooln:命名空间:活动:coolio收藏夹:-cassandra-默认视图:活动:featureGates:#切换nodeshell支持。如果需要,允许K9s进入节点。默认为假。nodeShell:false#提供功能门的shellpod自定义已启用shellPod:#要使用的shellpod图像。image:killerAdmin#启动pod的命名空间。namespace:fred#要在shellpod上设置的资源限制。限制:cpu:100m内存:100Mi#启动端口转发时使用的IP地址。portForwardAddress:1.2.3.4minikube:命名空间:活动:所有收藏夹:-所有-kube-system-defaultview:active:dp总结描述对日常经常需要操作k8s的运维人员很有帮助!除了以上功能,k9s还有其他更实用的功能,比如支持自建命令别名、自定义热键方式、支持自定义插件、支持自定义终端界面显示和资源显示顺序组合等。官网列出了这些,给出了一些简单的例子和??配置方法,基本可以搞定,看完可以自己DIY。了解您的工具并获得有关如何做事的“硬道理”非常重要。同样重要的是要记住,就管理而言,它是关于更聪明地工作,而不是更努力地工作。使用k9s是我实现这个目标的方式。作者:Escape链接:https://www.escapelife.site/p...
