跳到主要内容

Kubectl-krew 常用插件

ns 插件

切换命名空间,这样执行命令的视乎不用每次加上 -n <namespaces> 参数。

images 插件

查看当前命名空间或者集群 Workload 中使用的景象信息。

kubectl images -A

view-secret 插件

自动 decode base64 编码的 secret。

view-allocations 插件

查看资源分布情况。根据 resource、node、pod 三个维度进行查看。

kubesec-scan 插件

扫描 k8s 资源

kubectl kubesec-scan statefulset loki -n loki-stack

neat 插件

neat 显示,更具可读性

kubectl neat get -- pod loki-0 -oyaml -n loki-stack

node-shell 插件

在节点上执行命令

kubectl node-shell instance-ykx0ofns

outdated 插件

查看过时的镜像

kubectl outdated

popeye 插件

发现潜在的资源问题

kubectl popeye

resource-capacity 插件

提供资源请求、限制和使用率的概览。

这是一个简单的 CLI,它提供 Kubernetes 集群中资源请求、限制和利用率的概览。它试图将来自 kubectl top 和 kubectl describe 的输出的最好部分组合成一个简单易用的 CLI,专注于集群资源。

kubectl resource-capacity

score 插件

静态代码分析

kubectl score my-chart.yaml

sniff 插件

远程抓包

kubectl sniff <POD_NAME> [-n <NAMESPACE_NAME>] [-c <CONTAINER_NAME>] [-i <INTERFACE_NAME>] [-f <CAPTURE_FILTER>] [-o OUTPUT_FILE] [-l LOCAL_TCPDUMP_FILE] [-r REMOTE_TCPDUMP_FILE]

starboard 插件

安全扫描

kubectl starboard report deployment/nginx > nginx.deploy.html

tail 插件

将所有匹配 pod 的所有容器的日志流。按 service、replicaset、deployment 等匹配 pod。调整到变化的集群——当pod落入或退出选择时,将从日志中添加或删除它们。

# 匹配所有 pod
$ kubectl tail

# 配置 staging ns 的所有 pod
$ kubectl tail --ns staging

# 匹配所有 ns 的 rs name 为 worker 的 pod
$ kubectl tail --rs workers

# 匹配 staging ns 的 rs name 为 worker 的 pod
$ kubectl tail --rs staging/workers

# 匹配 deploy 属于 webapp,且 svc 属于 frontend 的 pod
$ kubectl tail --svc frontend --deploy webapp

trace 插件

使用系统工具跟踪 Kubernetes pod 和 node,在集群中调度 bpftrace 程序的执行。

kubectl trace run ip-180-12-0-152.ec2.internal -f read.bt

tree 插件

通过对 Kubernetes 对象的 ownersReferences 来探索它们之间的所有权关系。

tunnel 插件

群和你自己机器之间的反向隧道.

它允许您将计算机作为集群中的服务公开,或者将其公开给特定的部署。这个项目的目的是为这个特定的问题提供一个整体的解决方案(从kubernetes pod访问本地机器)。

ktunnel expose myapp 80:8000
ktunnel expose myapp 80:8000 -r
# deployment & service will be reused if exists or they will be created

warp 插件

在 Pod 中同步和执行本地文件

kubectl (Kubernetes CLI)插件,就像 kubectl 运行与 rsync。

它创建临时 Pod,并将本地文件同步到所需的容器,并执行任何命令。

例如,这可以用于在 Kubernetes 中构建和运行您的本地项目,其中有更多的资源、所需的架构等,同时在本地使用您的首选编辑器。

# 在 ubuntu 镜像中启动 bash。并将当前目录中的文件同步到容器中
kubectl warp -i -t --image ubuntu testing -- /bin/bash

# 在 node 容器中启动 nodejs 项目
cd examples/nodejs
kubectl warp -i -t --image node testing-node -- npm run watch

who-can 插件

显示谁具有访问 Kubernetes 资源的 RBAC 权限

kubectl who-can create ns all-namespaces

参考