? 引言:
- 磨刀不误砍柴工
- 工欲善其事必先利其器
像我这种,kubectl 用的不是非常溜,经常会碰到以下情况:
--help,再敲命令,效率低-n 指定 namespacekubectl exec -it...如果你的工作机(前置机、跳板机、操作机、堡垒机…)只是 Linux Shell,而没有桌面环境。那么我强烈推荐你使用这个 K8S 实用工具:终端 UI K9S。
K9S:K9s 是一个基于终端的 UI,用于与 Kubernetes 集群进行交互。这个项目的目的是使导航、观察和管理已部署的应用程序变得更容易。K9s 持续监视 Kubernetes 的变化,并提供后续命令与观察到的资源进行交互。

直接从 release 页面下载对应版本解压到 /usr/local/bin 即可。
安装后直接运行 k9s,就会进入 UI 界面,如下图:

| 操作 | 命令 | 备注 |
|---|---|---|
| 显示活跃的键盘助记符和帮助 | ? |
|
| 显示集群上所有可用的别名和资源 | ctrl-a or :alias |
|
| 退出 K9s | :q, ctrl-c |
|
| 使用单数/复数或短名称查看Kubernetes 资源 | :po⏎ |
接受单数,复数,短名或别名如 pod 或 pods |
| 查看给定名称空间中的Kubernetes 资源 | :alias namespace⏎ |
|
| 过滤出给定过滤器的资源视图 | /filter⏎ |
支持 Regex2,如` fred |
| 反向正则表达式过滤器 | /! filter⏎ |
保留所有不匹配的东西。日志未实现。 |
| 按标签过滤资源视图 | /-l label-selector⏎ |
|
| 模糊查找给定的资源 | /-f filter⏎ |
|
| 退出视图/命令/过滤模式 | <esc> |
|
| 键映射来描述(describe),查看(view),编辑(edit),查看日志(logs),... | d,v, e, l,… |
|
| 查看并切换到另一个Kubernetes上下文 | :ctx⏎ |
|
| 查看并切换到另一个Kubernetes上下文 | :ctx context-name⏎ |
|
| 查看并切换到另一个 Kubernetes 名称空间 | :ns⏎ |
|
| 查看所有已保存的资源 | :screendump or sd⏎ |
|
要删除资源(按TAB键并输入Enter) |
ctrl-d |
|
| 杀死一个资源(没有确认对话框!) | ctrl-k |
|
| 切换宽列 | ctrl-w |
等同于 kubectl ... -o wide |
| 切换错误状态 | ctrl-z |
查看有错误的资源 |
| 运行 pulses(脉冲)视图 | :pulses or pu⏎ |
|
| 运行 XRay(X 光)视图 | :xray RESOURCE [NAMESPACE]⏎ |
资源可以是以下之一:po, svc, dp, rs, sts, ds, NAMESPACE 参数可选 |
| 运行 Popeye(评估跑分) 视图 | :popeye or pop⏎ |
参阅 https://popeyecli.io |
花个 10 - 30 分钟熟悉快捷键,然后 —— 超级爽,各种快速进入、查找、切换、看 yaml、看日志、滚动日志、进 shell、编辑、复制 …
强烈推荐花时间熟悉,你会感觉效率飞升。???
它的过滤功能非常强大,使得你可以非常快速的定位资源,比如我想要看 traefik 的所有 CRD,操作如下:
ctrl-a
/traefik

更多过滤功能,可以自己试一试,进一步研究。
:pulse 就进入这个模式,这个就是一个监控 Dashboard,如下图:

可以非常直观看到集群现在的健康情况 —— 明显现在我的 Events 有异常,直接按 5⏎, 再按 ctrl-z查看异常事件:

XRay 会提供以某个 Kubernetes 资源为维度的关联关系,像 X 光一样,透射到资源的内部。如下图:

以 traefik deployment 为例,位于 kube-system ns,启动了一个 traefik-97b44b794-7qvzk pod,pod 只有一个 traefik container,并通过 ServiceAccount traefik 挂载了 secret traefik-token-r7vd2。
Popeye(大力水手)就是为集群、以及集群内的每隔资源打分,分数从 0 - 100,最后根据得分评出你的集群的情况:得分是 A 还是 C,并给出具体原因。
如下:

DaemonSet 得 0 分原因是都没指定 requests 和 limits:

Service 得 20 分原因就多了,甚至还贴心考虑到了开销贵不贵的问题:

RBAC 的 yaml 看起来很不方便的,如果对权限比较要求比较多,那 K9S 绝对好用直观,如下,traefik role 有哪些权限一目了然:who、what、how。

K9S 是一个基于终端的 K8S UI,在没有桌面、只有 终端的情况下使用它,可以大幅提升你的效率以及你对 K8S 的认知。
它有很多强大的功能,其中:快捷键、过滤、Pulses、XRay、Popeye、RBAC 这些功能一定要试一试,体验飞升!
一起使用吧~ ???
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
文章目录一、污点(Taint)1、污点简介2、污点的组成3、污点的设置和去除二、容忍(Tolerations)1、容忍简介2、容忍的基本用法3、示例4、多污点与多容忍配置三、警戒(cordon)和转移(drain)四、Pod启动阶段(相位phase)五、故障排除步骤一、污点(Taint)节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点Taint则相反,它使节点能够排斥一类特定的PodTaint和Toleration相互配合,可以用来避免Pod被分配到不合适的节点上。每个节点上都可以应用一个或多个taint,这表示对于那些不能容忍这些taint的Pod,是不会被
文/高扬(微信公众号:量子论)据上次3月18号发布的V1.8版,已经过去十天,这期间AI领域发生了很多重大变化。因此,我们对《ChatGPT实用指南》进行了重大改版,增加了大量实用的操作和详细的讲解,保证小白可以轻松上手,快速驾驭ChatGPT。V2.0版本亮点:1、结构更合理。分为基础篇、进阶篇、高级篇,从易到难,由浅入深,符合学习规律。2、内容更充实。扩充了27页的内容,尽量看图说话,将操作步骤一步步地展示出来。3、排版更美观。按图书出版的规范制作,便于知识点查阅。后记:2022年11月底,我们在HackerNews上看到了关于ChatGPT的新闻报道后,开始意识到,人工智能的春天来了,这
文章目录Kubernetes(k8s)工作负载一、Workloads二、Pod三、Deployment四、RC、RS、DaemonSet、StatefulSet五、Job、CronJob1、Job2、CronJob六、GCKubernetes(k8s)工作负载一、Workloads什么是工作负载(Workloads)工作负载是运行在Kubernetes上的一个应用程序。一个应用很复杂,可能由单个组件或者多个组件共同完成。无论怎样我们可以用一组Pod来表示一个应用,也就是一个工作负载Pod又是一组容器(Containers)所以关系又像是这样工作负载(Workloads)控制一组PodPod控制
前言 前端时间PHP项目部署升级需要,需要把Laravel开发的项目部署K8s上,下面以laravel项目为例,讲解采用yaml文件方式部署项目。一、部署步骤1.创建Dockerfile文件Dockerfile是一个用来构建镜像的文本文件,在容器运行时,需要把项目文件和项目运行所必须的组件安装其中。#基础镜像FROMphp:7.4-fpm#时区ARGTZ=Asia/Shanghai#更换容器时区RUNcp"/usr/share/zoneinfo/$TZ"/etc/localtime&&echo"$TZ">/etc/timezone#替换成阿里apt-get源RUNsed-i"s@http
目录前言安装containerd解压安装配置成systemd任务安装runc编辑安装cni配置containerd镜像源containerd基本使用拓展阅读nerdctl工具安装及使用整体脚本总结写在后面前言上一篇文章,我们介绍了虚拟机的基础环境以及基础的网络配置,还有一些k8s节点要用到基础环境配置。本文将带领大家把containerd给安装了containerd的项目官方地址https://github.com/containerd/containerdcontainerd的发布版本地址如下https://github.com/containerd/containerd/releases
关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.7年前关闭。ImprovethisquestionSteveKlabnik最近在pullrequest中说对于实用程序模块:[Thecode]obscuresthefactthattheseareclassmethods,andwewanttousethemthatway.Plus,Ithinkthatextendselfisgenerallyananti-pattern,andshouldn'treallybeusedexcepti
这可能是个愚蠢的问题,但我是RubyonRails的新手,需要一些指导。我想要一个帮助程序/实用程序类来执行一组网络操作并返回结果。我将该类放在哪里以及如何使用它。我在我的app/modulename/helpers目录中创建了network_helper.rb。当我尝试做时在我的Controller中myNetworkHelper=ModuleName::NetworkHelper.newresults=myNetworkHelper.getResults我得到一个错误undefinedmethod`new'forMyModule::NetworkHelper:Module我敢肯定这
文章目录一.k8s集群修改config1.1备份当前k8s集群配置文件1.2删除当前k8s集群的apiserver的cert和key1.3生成新的apiserver的cert和key1.4刷新admin.conf1.5重启apiserver1.6刷新.kube/config二.安装kubectl2.1下载kubectl2.2配置kubectl三.使用kubernetes-client操作k8s集群3.1依赖3.2注意(可忽略)3.3创建StatefulSet3.4运行shell命令3.5删除StatefulSet3.6线上运行注意一.k8s集群修改config因为默认的是内网IP,复制出来后,
一、外观优化插件1.1Chinese中文插件包,看起来清晰明了,安装完重启vs即可生效;1.2BetterComments一款美化注释的插件,可以根据不同种类的注释,显示不同的颜色,一目了然。还可以通过扩展配置文件自定义任何颜色,类型的注释。1.3ColorHighlight用于给我们代码中的颜色进行高亮展示的插件,直接将代码中颜色值高亮展示。1.4MaterialThemeIcons设置文件图标的,这个是我比较喜欢使用的一个文件样式,还有很多其他的文件图标大家可以自行选择。1.5ErrorGutters报错提示,报错的地方都有大红波浪线提示,可以很快的定位错误。1.6Imagepreview