首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >五个高效的 kubectl 插件

五个高效的 kubectl 插件

作者头像
云云众生s
发布于 2024-03-27 13:18:36
发布于 2024-03-27 13:18:36
25500
代码可运行
举报
文章被收录于专栏:云云众生s云云众生s
运行总次数:0
代码可运行

五个能让你的生活变得更轻松的 kubectl 插件

我已经使用 Kubernetes 五年了,但直到最近才开始使用插件来增强我的 kubectl 命令。我将向您展示五个插件,这些插件帮助我避免重复的任务,使集群管理更简单,应对事故响应更轻松。本文介绍的所有插件都可以使用 Krew 进行安装。

翻译自 5 kubectl plugins to make your life easier

Mac 用户注意事项

如果您使用的是 ARM 架构的 Mac,在使用 Krew 安装插件时,我提到的大多数插件可能会显示无法安装。这通常是因为插件作者没有发布 mac-arm64 构建。但您可以通过覆盖 KREW_ARCH 环境变量来安装 mac-amd64 构建,这同样有效。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
KREW_ARCH=amd64 kubectl krew install janitor

Tail

通过 kubectl logs -f 记录 pod 的日志始终是了解正在运行的 pod 在做什么的好方法。可惜的是,我从未设法记住如何让它同时记录多个 pod 的日志。tail 插件通过为我们提供一组辅助函数来解决这个问题,从而轻松地流式传输一组 pod 的日志。例如,它可以检索由 Job 创建的所有 pod 的日志,或者附加到 Service 的所有 pod 的日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
❯ k tail --job=logging-job
default/logging-job-xtx4s[busybox-container]: My log

❯ k tail --svc=mikochi
default/mikochi-69d47757f6-9nds7[mikochi]: [GIN] 2023/07/27 - 12:31:16 | 200 |     496.098µs |       10.42.0.1 | GET      "/api/refresh"
default/mikochi-69d47757f6-9nds7[mikochi]: [GIN] 2023/07/27 - 12:31:16 | 200 |   10.347273ms |       10.42.0.1 | GET      "/api/browse/"
default/mikochi-69d47757f6-9nds7[mikochi]: [GIN] 2023/07/27 - 12:31:16 | 200 |    9.598031ms |       10.42.0.1 | GET      "/api/browse/"
default/mikochi-69d47757f6-9nds7[mikochi]: [GIN] 2023/07/27 - 12:31:19 | 200 |     193.686µs |       10.42.0.1 | GET      "/ready"

Janitor

Janitor 是一个 kubectl 插件,允许您列出处于问题状态的资源。它不需要使用 grep 命令,而是为您提供了命令,用于自动列出不健康、未准备好或未调度的 Pod、失败的 Job、挂起的 PVC 以及未声明的 PV。在检查集群期间发生事故时,这对于直接指向您正在处理的问题非常有帮助。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
❯ k janitor pods status
STATUS             COUNT
Running            4
Error              6
ImagePullBackOff   1

❯ k janitor pods unhealthy
NAME                 STATUS             AGE
failing-job-ln7rf    Error              4m40s
failing-job-vbfqd    Error              4m33s
failing-job2-kmxqm   Error              4m30s
failing-job-cjbt6    Error              4m27s
failing-job2-grwcn   Error              4m23s
failing-job2-s842x   Error              4m17s
my-container         ImagePullBackOff   17m

❯ k janitor jobs failed
NAME           REASON                 MESSAGE                                       AGE
failing-job    BackoffLimitExceeded   Job has reached the specified backoff limit   4m46s
failing-job2   BackoffLimitExceeded   Job has reached the specified backoff limit   4m36s

Neat

Neat 是一个简单的实用程序,用于从命令输出中删除生成的字段。您只需将 kubectl get 的输出导入 kubectl neat 中即可使用。这使输出更易读,并且如果您想保存 yaml 以创建新资源,这非常方便。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
❯ k get pod -o yaml mikochi-69d47757f6-9nds7
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2023-07-21T12:30:58Z"
  generateName: mikochi-69d47757f6-
  labels:
    app.kubernetes.io/instance: mikochi
    app.kubernetes.io/name: mikochi
    pod-template-hash: 69d47757f6
  name: mikochi-69d47757f6-9nds7
  namespace: default
.......

❯ k get pod -o yaml mikochi-69d47757f6-9nds7 | k neat
apiVersion: v1
kind: Pod
metadata:
  labels:
    app.kubernetes.io/instance: mikochi
    app.kubernetes.io/name: mikochi
    pod-template-hash: 69d47757f6
  name: mikochi-69d47757f6-9nds7
  namespace: default
.......

View-secret

由于 Secret 内部的数据是经过 base64 编码的,所以阅读它们通常需要使用 kubectl getjqbase64 -d 命令的组合。view-secret 插件旨在简化此过程,允许您直接读取和解密 secrets 中的值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
❯ k view-secret mikochi username
[CENSORED]

❯ k view-secret mikochi password
[ALSO CENSORED]

Node-shell

如果您想直接访问一个节点,在事故期间找到节点 IP,使用正确的 RSA 密钥进行 SSH 等操作可能会浪费宝贵的时间。但是通过使用 nsenter,可以从(特权)容器中获取 root shell。node-shell 插件利用此功能,在单个 kubectl 命令中让您访问节点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
❯ k node-shell my-node
spawning "nsenter-qco8qi" on "my-node"
如果您看不到命令提示符,请尝试按下 Enter 键。
root@my-node:/# cat /etc/rancher/k3s/k3s.yaml
apiVersion: v1
clusters:
- cluster:
.......
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用插件扩展 kubectl
由于笔者所维护的集群规模较大,经常需要使用 kubectl 来排查一些问题,但是 kubectl 功能有限,有些操作还是需要写一个脚本对 kubectl 做一些封装才能达到目的。比如我经常做的一个操作就是排查一下线上哪些宿主的 cpu/memory request 使用率超过某个阈值,kubectl 并不能直接看到一个 master 下所有宿主的 request 使用率,但可以使用 kubectl describe node xxx查看某个宿主机的 request 使用率,所以只好写一个脚本来扫一遍了。
田飞雨
2019/12/15
1.1K0
从未有过的kubectl指南
当键盘上的“k”键已经磨损时,你就知道自己正在与一位Kubernetes工程师打交道。
云云众生s
2024/05/08
2010
从未有过的kubectl指南
K8S 实用工具之四 - kubectl 实用插件
在《K8S 实用工具之一 - 如何合并多个 kubeconfig?》一文中,我们介绍了 kubectl 的插件管理工具 krew。接下来就顺势介绍几个实用的 kubectl 插件。
东风微鸣
2022/04/22
2K0
K8S 实用工具之四 - kubectl 实用插件
kubectl 的插件管理工具krew
k8s的命令行工具kubectl 对于玩k8s 的人来说是必备工具。kubectl插件机制在Kubernetes 1.14宣布稳定,进入GA状态。kubectl的插件机制就是希望允许开发者以独立的二进制形式发布自定义的kubectl子命令。kubectl插件可以使用任意语言开发,如可以是一个bash、python的脚本,也可以是其他语言开发编译的二进制可执行文件,只要最终将脚本或二进制可执行文件以kubectl-的前缀放到PATH中即可。使用kubectl plugin list可以在PATH中查看有哪些插件。
张善友
2021/10/09
5340
kubectl 的插件管理工具krew
k8s实践(十三):kubectl插件管理工具krew
kubectl 是 Kubernetes 的命令行工具(CLI),是 Kubernetes 用户和管理员必备的管理
loong576
2019/11/23
5.6K0
k8s实践(十三):kubectl插件管理工具krew
kubectl 高效使用技巧
在学习如何更高效地使用 kubectl 之前,你应该对它是如何工作的有个基本的了解。kubectl 是 Kubernetes 集群的控制工具,它可以让你执行所有可能的 Kubernetes 操作。
我是阳明
2021/09/14
1.5K0
推荐几个krew的效率插件
Krew是kubectl插件的软件包管理器,简单来说它就像apt、dnf或者brew一样,通过krew你可以方便的管理机器上kubectl的插件。小白在这里根据日常工作给大家推荐一个效率的krew插件,带有一定的主观性,大家自行选择。
云原生小白
2021/05/13
9050
推荐几个krew的效率插件
一文读懂最佳 Kubectl 安全插件(上)
Hello folks,我是 Luga,今天我们来聊一聊在 Kubernetes Cluster 编排生态环境中一个至关重要的安全 Topic:Kubectl Plugin。
Luga Lee
2023/02/06
2.2K2
扩展 Kubernetes 之 Kubectl Plugin
kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章
王磊-字节跳动
2020/02/05
2.7K0
扩展 Kubernetes 之 Kubectl Plugin
kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章
闻说社
2022/07/14
3480
kubectl 常用命令指南
Kubectl 命令是操作 kubernetes 集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握
星哥玩云
2022/07/25
1.5K0
kubectl 常用命令指南
如何编写一个支持 Krew 的 kubectl 插件
Krew 是一个用来管理 Kubectl 插件的工具,名字大概来自于 OS X 下著名的软件包管理器 Homebrew,使用 Krew 能够方便的查找、安装和使用 Kubectl 插件,例如:
崔秀龙
2020/04/07
7710
K8S:通过 kubectl 插件 ketall 查看所有API对象资源
出其东门,有女如云。虽则如云,匪我思存。缟衣綦巾,聊乐我员。——《郑风·出其东门》
山河已无恙
2023/08/21
4150
K8S:通过 kubectl 插件 ketall  查看所有API对象资源
一文读懂最佳 Kubectl 安全插件(下)
Hello folks,我是 Luga,接着上一篇博文,我们继续来解析 Kubectl 安全插件相关内容...
Luga Lee
2023/02/06
1.6K2
kubectl常用命令
get命令用于获取集群的一个或一些resource信息。 使用–help查看详细信息。 Ps:kubectl的帮助信息、示例相当详细,而且简单易懂。建议大家习惯使用帮助信息。kubectl可以列出集群所有resource的详细。resource包括集群节点、运行的pod,ReplicationController,service等。
HaydenGuo
2019/12/13
1K0
kubectl常用命令
Kubectl Plugin 推荐(一)| 可观测性篇
kubectl 作为最重要的 Kubernetes 客户端工具一直以来都被广泛的应用与各种场景,其对于 YAML 工程师的作用就像战士手中的枪,用的好不好完全可以影响到 YAML 工程师的整体工作效率。虽然 kubectl 本身迭代的速度非常快,但是也很难满足所有人的全部需求,这时 kubectl 的插件机制就可以很好的弥补这个问题。
郭旭东
2021/03/16
9600
Kubectl Plugin 推荐(一)| 可观测性篇
Kubernetes-Web-UI-Dashboard仪表盘安装使用
附录: K8s官网介绍: https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/ 项目地址: https://github.com/kubernetes/dashboard
全栈工程师修炼指南
2022/09/29
1.6K0
Kubernetes-Web-UI-Dashboard仪表盘安装使用
minikube addons enable ingress 启动错误
minikube addons enable ingress --alsologtostderr
王清培
2021/10/04
2.8K0
minikube addons enable ingress 启动错误
如何通过 kubectl 进入 node shell
生产环境中,Node 都需要通过堡垒机登录,但是 kubectl 是可以直接在个人电脑上登录的。
东风微鸣
2022/12/01
2.3K0
如何通过 kubectl 进入 node shell
5.Prometheus监控入门之企业监控实战采集展示
描述: 本章主要讲解和实践Prometheus在企业中的应用场景的复现,采用了docker-compose的资源清单进行快速构建prometheus_server、prometheus_pushgateway、prometheus_alertmanager、grafana等环境。
全栈工程师修炼指南
2022/09/29
9660
5.Prometheus监控入门之企业监控实战采集展示
相关推荐
使用插件扩展 kubectl
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档