news 2026/10/12 23:42:36

kubectl plugin:neat 的安装与使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kubectl plugin:neat 的安装与使用

前言

在使用kubectl get $KIND -o yaml查看 k8s 资源时,输出结果中包含大量由集群自动生成的元数据(如managedFields、resourceVersion、uid等)。这些信息在实际复用 yaml 清单时需要手动清理,增加了额外的工作量。

使用 kubectl-neat 插件,可以自动移除这些由集群生成的冗余字段,仅保留有意义的内容,使 yaml 更加简洁,方便复用。

安装

插件方式安装

/* by 01130.hk - online tools website : 01130.hk/zh/calcpressure.html */ kubectl krew install neat ## 作为 kubectl 插件安装,使用方式为: kubectl neat

二进制方式安装

/* by 01130.hk - online tools website : 01130.hk/zh/calcpressure.html */ ## 版本选择: ## https://github.com/itaysk/kubectl-neat/releases ## 当前环境为 ubuntu 2404 LTS wget https://github.com/itaysk/kubectl-neat/releases/download/v2.0.4/kubectl-neat_linux_amd64.tar.gz tar xf kubectl-neat_linux_amd64.tar.gz mv ./kubectl-neat /usr/local/bin/ ## 创建别名(这里看个人习惯) vim /root/.bashrc alias kneat='kubectl-neat'

使用

本次使用二进制方式部署,实际上参数是相同的,没区别

root@network-demo:~# kubectl-neat help Usage: kubectl-neat [flags] kubectl-neat [command] ## 示例是通过 kubectl plugin 方式安装,使用二进制安装改成 kubectl-neat 就好 Examples: kubectl get pod mypod -o yaml | kubectl neat kubectl get pod mypod -oyaml | kubectl neat -o json kubectl neat -f - <./my-pod.json kubectl neat -f ./my-pod.json kubectl neat -f ./my-pod.json --output yaml Available Commands: ## 自动补全命令用的 completion Generate the autocompletion script for the specified shell get help Help about any command version Print kubectl-neat version Flags: -f, --file string file path to neat, or - to read from stdin (default "-") -h, --help help for kubectl-neat -o, --output string output format: yaml or json (default "yaml")

命令补全

简单来说就是按两下 tab 后自动补充没拼完的参数

💡 注:其实没啥用...他只能补全命令本身的参数,并不能补全 k8s 相关信息

root@network-demo:~# kubectl-neat completion --help Generate the autocompletion script for kubectl-neat for the specified shell. See each sub-command's help for details on how to use the generated script. Usage: kubectl-neat completion [command] Available Commands: bash Generate the autocompletion script for bash fish Generate the autocompletion script for fish powershell Generate the autocompletion script for powershell zsh Generate the autocompletion script for zsh Flags: -h, --help help for completion Global Flags: -o, --output string output format: yaml or json (default "yaml")
## 当前环境使用 bash root@network-demo:~# hostnamectl Static hostname: network-demo Icon name: computer-vm Chassis: vm Virtualization: kvm Operating System: Ubuntu 24.04.3 LTS Kernel: Linux 6.8.0-88-generic Architecture: x86-64 ## 添加命令补全 echo "source <(kneat completion bash)" >> ~/.bashrc && source ~/.bashrc ## 查看效果 ## 上面说没啥用的地方就在这...实际上能用的参数只有 get(kubectl-neat 自己的参数) ## 当你补全 get 后就会发现他无法识别 k8s 资源 root@network-demo:~# kubectl-neat completion (Generate the autocompletion script for the specified shell) help (Help about any command) get version (Print kubectl-neat version)

使用方式

## 这里我直接将 kubectl get -o yaml 与 kubectl-neat get -o yaml 输出对比 kubectl-neat get -- pods -n deepflow deepflow-server-fc484c85-p67gl -o yaml > deepflow-kneat.yaml kubectl get pods -n deepflow deepflow-server-fc484c85-p67gl -o yaml > deepflow-kubectl.yaml
## 通过 icdiff 输出两个文件的对比结果,这里为了方便大家看,只把删除的内容放上来了 root@network-demo:~# icdiff deepflow-kubectl.yaml deepflow-kneat.yaml creationTimestamp: "2026-01-23T02:24:57Z" generateName: deepflow-server-fc484c85- generation: 1 ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: ReplicaSet name: deepflow-server-fc484c85 uid: 528ab77f-67ba-4099-8771-bfe06ca9ce2f resourceVersion: "4864722" uid: 0d5ff97b-9c48-4abf-be8b-d2b76f7a14d2 nodeAffinity: {} apiVersion: v1 apiVersion: v1 apiVersion: v1 apiVersion: v1 apiVersion: v1 scheme: HTTP successThreshold: 1 timeoutSeconds: 1 protocol: TCP protocol: TCP protocol: TCP protocol: TCP scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: {} securityContext: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsConfig: {} dnsPolicy: ClusterFirst enableServiceLinks: true nodeName: network-demo restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: deepflow-server terminationGracePeriodSeconds: 30 defaultMode: 420 defaultMode: 420 apiVersion: v1 status: ## 下面是所有 status 内容...
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/11 10:02:13

基于SpringBoot的宿舍管理系统的设计与实现

宿舍管理系统的背景高校宿舍管理是校园后勤工作的重要组成部分&#xff0c;涉及学生住宿分配、费用收缴、设施维护、安全巡查等多方面内容。传统的人工管理方式效率低下&#xff0c;容易出错&#xff0c;难以满足现代高校规模化、精细化管理需求。信息化转型成为解决这一问题的…

作者头像 李华
网站建设 2026/10/13 5:14:18

2026版Spring全家桶学习笔记(Spring+Springboot+SpringCloud)

Spring框架自从诞生以来就一直备受开发者青睐&#xff0c;它涵盖了Spring、Springboot、SpringCloud等诸多解决方案&#xff0c;一般我们都会统称为Spring全家桶&#xff01;出于Spring框架在Java开发者心中中的统治地位&#xff0c;所以不管是面试还是工作&#xff0c;Spring都…

作者头像 李华
网站建设 2026/10/12 20:38:13

Claude Cowork 和OpenWork 是什么

Claude Cowork 和OpenWork 是什么 目录 Claude Cowork 和OpenWork 是什么一、Claude Cowork 是什么 & 怎么用1. 工具定位2. 使用步骤&#xff08;以Mac为例&#xff09;3. 详细举例&#xff1a;智能报销整理 二、OpenWork 是什么 & 怎么用1. 工具定位2. 使用步骤&#…

作者头像 李华
网站建设 2026/10/13 7:23:57

dfs序+差分

lc2445hash预处理query&#xff0c;利用小的数不可能被大的数影响的单调性dfsclass Solution { public:int numberOfNodes(int n, vector<int>& queries) {map<int, int> cnt;for (auto& q: queries) cnt[q];function<int(int, int)> dfs [&] (…

作者头像 李华
网站建设 2026/10/11 3:25:47

【AI】AI 编程中的浏览器缓存陷阱:一次真实的踩坑经历

AI 编程中的浏览器缓存陷阱&#xff1a;一次真实的踩坑经历 问题背景 在使用 AI 辅助开发一个 RAG 知识库问答系统时&#xff0c;我遇到了一个让人困惑的问题&#xff1a; 搜索 “机器人料架取放料异常” 时&#xff0c;明明已经精确匹配到了正确的知识条目&#xff08;该条目没…

作者头像 李华