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