【.com速译】我写的Kubernetes管理文章一般都是参考kubectl命令管理集群。不过最近有人指出k9s项目可以快速查看和解决Kubernetes中的日常问题。本文介绍如何开始。它可以安装在Mac、Windows和Linux上。可以在此处找到每个操作系统的说明。安装完成后继续下一步。我将使用Linux和Minikube,这是一种在个人计算机上运行Kubernetes的轻量级方法。按照本教程使用文档安装它。设置k9s配置文件安装k9s应用程序后,最好使用help命令启动。$k9shelpK9sisaCLItoviewandmanageyourKubernetesclusters.Usage:k9s[flags]k9s[command]AvailableCommands:helpHelpaboutanycommandinfoPrintconfigurationinfoversionPrintversion/buildinfoFlags:-A,--all-namespacesLaunchK9sinallnamespaces--asstringUsernametoimpersonatefortheoperation--as-groupstringArrayGrouptoimpersonatefortheoperation--certificate-authoritystringPathtoacertfileforthecertificateauthority--client-certificatestringPathtoaclientcertificatefileforTLS--client-keystringPathtoaclientkeyfileforTLS--clusterstringThenameofthekubeconfigclustertouse-c,--commandstringSpecifythedefaultcommandtoviewwhentheapplicationlaunches--contextstringThenameofthekubeconfigcontexttouse--demoEnabledemomodetoshowkeyboardcommands--headlessTurnK9sheaderoff-h,--helphelpfork9s--insecure-skip-tls-verifyIftrue,theserver'scaCertFilewillnotbecheckedforvalidity--kubeconfigstringPathtothekubeconfigfiletouseforCLIrequests-l,--logLevelstringSpecifyaloglevel(info,warn,调试,错误,fatal,panic,trace)(default"info")-n,--namespacestringIfpresent,thenamespacescopeforthisCLIrequest--readonlyDisableallcommandsthatmodifythecluster-r,--refreshintSpecifythedefaultrefreshrateasaninteger(sec)(default2)--request-timeoutstringThelengthoftimetowaitbeforegivinguponasingleserverrequest--tokenstringBearertokenforauthenticationtotheAPIserver--userstringThenameofthekubeconfigusertouseUse"k9s[command]--help"获取有关命令的更多信息。如您所见,我们可以使用k9s配置许多功能。开始的唯一步骤是编写配置文件。info命令将为我们指出应用程序正在寻找的方向。$k9sinfo______.________||/_/__\______|<\____/___/||\//\___\|____|__\/____//____>\/\/Configuration:/Users/jess/.k9s/config.ymlLogs:/var/folders/5l/c1y1gcw97szdywgf9rk1100m0000gn/T/k9s-jess.logScreenDumps:/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:2headless:falsereadOnly:falsenoIcons:falselogger:tail:200buffer:500sinceSeconds:300fullScreenLogs:falsetextWrap:falseshowTime:falsecurrentContext:minikubecurrentCluster:minikubeclusters:minikube:namespace-active:""收藏夹视图:""收藏夹::dpth:critical:90warn:70memory:critical:90warn:70我们设置k9s来查找本地minikube配置,所以我想验证minikube是否在线并可以使用。$minikubestatushost:Runningkubelet:Runningapiserver:Runningkubeconfig:Configured运行k9s探索Kubernetes集群现在配置文件已设置为指向本地集群,我们现在可以运行k9s命令。$k9s启动k9s后,将弹出k9s基于文本的用户界面(UI)。如果没有命名空间标志,它将在默认命名空间中显示pod。图1如果您在具有许多pod的环境中运行,则默认视图可能会让人不知所措。或者,我们可以专注于特定的命名空间。退出应用程序并运行k9s-nwhere是现有的命名空间。在下图中,我运行k9s-nminecraft,它显示我的pod出现故障。图2因此,一旦k9s启动,您可以快速处理许多事务。可以通过快捷键浏览和控制k9s。我们始终可以使用箭头键和Enter键选择列出的项目。有一些额外的通用键可以查看不同的视图:0-显示所有命名空间中的所有pod。图3d—所选pod的描述。图4l—显示所选pod的日志。图5您可能已经注意到k9s已设置为使用Vim命令键,包括使用J和K键上下移动。快速查看不同的Kubernetes资源需要查看不是Pod的资源?键入冒号(“:”)键后可以使用许多快捷方式。然后,您可以使用以下命令进行浏览。:svc-跳转到服务视图。图6:deploy-跳转到部署视图。图7:rb-跳转到角色绑定视图,面向基于角色的访问控制(RBAC)管理。图8:命名空间-跳回命名空间视图。图9:cj-跳转到定时任务视图查看集群中的定时任务。图10此应用程序最常用的工具是键盘;要在任何页面上向上或向下移动,请使用箭头键。如果需要退出,请记住使用Vim键绑定。输入:q,回车离开。当使用k9s对Kubernetes进行故障排除的示例出现问题时,k9s如何提供帮助?为了说明,我让几个pod由于配置错误而失败。您可以在下方看到崩溃的Hello部署。突出显示后,按d运行描述命令以查看导致失败的原因。图11图12略读事件没有告诉我们失败的原因。接下来,我按esc通过突出显示pod并键入来查看日志。图13不幸的是,日志也没有帮助(可能是由于从未正确配置部署),pod没有启动。然后我按esc退出,看看删除pod是否能解决问题。为此,我突出显示pod并使用.k9s在删除之前提示用户。图14虽然我确实删除了pod,但是部署资源还在,所以出现了新的pod。它还会出于某种原因(我们还不知道)不断重启、崩溃。我会反复查看日志、描述资源,并使用e快捷方式编辑正在运行的pod以修复问题。在这种特殊情况下,失败的pod未配置为在该环境中运行。因此,不妨删除部署以停止我们正在经历的重启后崩溃循环。我们可以通过键入:deploy并回车来进入部署。之后,我们突出显示它,然后按删除。图15图16这样就证明部署没有了!只需几次击键即可清除此错误部署。k9s灵活且可定制。因此,该应用程序拥有大量的自定义选项,甚至可以自定义UI的配色方案。以下是您可能感兴趣的一些可编辑选项:调整放置config.yml文件的位置将自定义别名添加到alias.yml文件在hotkey.yml文件中创建自定义热键探索可用插件或编写您自己的插件整个应用程序在YAML文件中配置,因此任何Kubernetes管理员都熟悉自定义。原标题:SpeedupadministrationofKubernetesclusterswithk9s,作者:JessicaCherry
