kubernetes 工具集

张开发
2026/5/20 2:15:55 15 分钟阅读
kubernetes 工具集
1、Kubectl终端高亮色彩输出1、工具下载wgethttps://github.com/dty1er/kubecolor/releases/download/v0.0.25/kubecolor_0.0.25_Linux_x86_64.tar.gztar-xfkubecolor_0.0.25_Linux_x86_64.tar.gzmvkubecolor /usr/local/bin2、go命令安装goinstallgithub.com/hidetatz/kubecolor/cmd/kubecolorlatest 如果您没有使用模块模式或者如果上面的方法不起作用请尝试下面的方法 go get-ugithub.com/hidetatz/kubecolor/cmd/kubecolor3、编写环境变量echoalias kubectlkubecolor~/.bash_profilesource~/.bash_profile2、kubectl 命令自动补全1、Redhat centos系统命令补充安装# 安装bash-completion## bash-completion-extras需要epelrepo源yuminstall-ybash-completion bash-completion-extras# 配置自动补全source/usr/share/bash-completion/bash_completion# 临时生效kubectl自动补全source(kubectl completionbash)## 只在当前用户生效kubectl自动补全echosource (kubectl completion bash)~/.bashrc## 全局生效echosource (kubectl completion bash)/etc/profile.d/k8s.shsource/etc/profile# 生成kubectl的自动补全脚本kubectl completionbash/etc/bash_completion.d/kubectl2、Ubuntu系统命令补全命令安装sudoapt-add-repository ppa:bash-completion/ppasudoaptupdatesudoaptinstallbash-completioncurl-LOhttps://storage.googleapis.com/kubernetes-release/release/curl-shttps://storage.googleapis.com/kubernetes-release/release/stable.txt/bin/linux/amd64/kubectlchmodx ./kubectlsudomv./kubectl /usr/local/bin/kubectlsource(kubectl completionbash)echosource (kubectl completion bash)~/.bashrc3、kubernetes的命令别名脚本访问命令忘记和简化命令输入脚本的GitHub地址source ~/.kubectl_aliases4、Yaml文件检查工具wgethttps://github.com/instrumenta/kubeval/releases/download/0.16.1/kubeval-linux-amd64.tar.gztarxf kubeval-linux-amd64.tar.gzcpkubeval /usr/local/bin解压出来有三个工具 kubeval 是二进制文件其余两个是说明文档测试yaml 文件5、kubernetes可视化工具-kubepimkdir-p/opt/kubepidockerrun--privileged-d-v/opt/kubepi:/var/lib/kubepi--restartunless-stopped-p8000:80 1panel/kubepigithub地址打开浏览器访问http://localhost:8000/用户名admin密码kubepi#查询apiserver地址kubectl cluster-info|head-n1# k8s内创建用户并且获取tokenkubectl create sa kubepi-user--namespacekube-system kubectl create clusterrolebinding kubepi-user--clusterrolecluster-admin--serviceaccountkube-system:kubepi-user# 将 token 填入到配置中kubectl-nkube-system describe secret$(kubectl-nkube-system get secret|grepkubepi-user|awk{print $1})|greptoken:|awk{print $2}然后通过Bearer Token的方式进行导入集群即可总的来说KubePi 是一个简单高效的 Kubernetes 集群图形化管理工具方便用户进行日常管理和操作以及高效快速地查询日志和定位问题等等6、kubectl 补全提示工具1、项目地址及介绍https://github.com/c-bata/kube-prompt(https://github.com/c-bata/kube-prompt)一个交互式 kubernetes 客户端具有使用 go-prompt 自动完成的功能。2、 安装方法wgethttps://github.com/c-bata/kube-prompt/releases/download/v1.0.11/kube-prompt_v1.0.11_linux_amd64.zipunzipkube-prompt_v1.0.11_linux_amd64.zipchmodx kube-promptsudomv./kube-prompt /usr/local/bin/kube-prompt3、使用方法提示词kube-prompt 接受与 kubectl 相同的命令除了你不需要提供 kubectl 前缀。因此它不需要额外的成本来使用这个插件。7、kubectl-neat 使用指南告别K8S冗余YAML1、项目介绍kubectl-neat 是一个 Kubernetes 清理工具用于移除 Kubernetes manifests 中的冗余信息使输出更加简洁可读。项目地址 https://github.com/itaysk/kubectl-neat为什么需要它当你创建 Kubernetes 资源后Kubernetes 会自动添加大量系统信息元数据creationTimestamp、uid、resourceVersion 等内部系统信息默认值填充缺失属性会被自动填充默认值准入控制器注入如 ServiceAccount token 等自动注入内容状态信息status 字段等运行时状态使用 kubectl get 导出的资源会变得冗长且难以阅读kubectl-neat 可以清理这些多余信息。2、安装# 下载wgethttps://github.com/itaysk/kubectl-neat/releases/download/v2.0.4/kubectl-neat_linux_amd64.tar.gz# 解压tar-xzfkubectl-neat_linux_amd64.tar.gz# 移动到 PATHmvkubectl-neat /usr/local/bin/# 赋予执行权限chmodx /usr/local/bin/kubectl-neat# 验证安装kubectl-neat version kubectl-neat version:2.0.43、使用# 清理 kubectl get 的输出最常用kubectl get pod mypod-oyaml|kubectl neat# 输出为 JSON 格式kubectl get pod mypod-oyaml|kubectl neat-ojson# 从文件读取kubectl neat-f./my-pod.yaml# 从标准输入读取kubectl neat-f-./my-pod.json# 指定输出格式kubectl neat-f./my-pod.json--outputyaml# 获取指定命名空间的 deploymentkubectl neat get -- deployment-nbase-uat tsingyun-alarm-oyaml# 获取指定命名空间的 Servicekubectl neat get -- svc-ndefault myservice--outputjson8、安装kubernetes的krew应用商店特性使用 Krew 安装手动安装核心操作一条命令完成下载、解压、配置路径-1需要手动下载文件、解压、移动到正确目录、添加执行权限-4-10便捷性高。自动处理依赖和路径低。操作繁琐且容易出错升级与卸载方便。通过 kubectl krew upgrade/remove 管理麻烦。需要手动找到文件并删除插件发现方便。通过 kubectl krew search 查找-5麻烦。需要自己去GitHub等平台寻找安全性有一定保障。插件来自社区维护的索引-4-10自行判断。需自行评估下载源和代码的安全性1、安装(set-x;cd$(mktemp-d)OS$(uname|tr[:upper:][:lower:])ARCH$(uname-m|sed-es/x86_64/amd64/-es/\(arm\)\(64\)\?.*/\1\2/-es/aarch64$/arm64/)KREWkrew-${OS}_${ARCH}curl-fsSLOhttps://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gztarzxvf${KREW}.tar.gz./${KREW}installkrew)2、krew应用商店的使用你可以把 Krew 的命令行操作分为四大类发现、安装、升级、卸载。操作类型具体操作命令说明发现搜索插件kubectl krew search [关键词]在“应用商店”里查找插件。不加关键词会列出所有可用插件 -2。查看插件详情kubectl krew info 插件名查看插件的描述、作者、版本等详细信息 -2。安装安装插件kubectl krew install 插件名一键安装这就是你之前安装 resource-capacity 用到的命令。升级更新插件kubectl krew upgrade 插件名将指定插件升级到最新版 -2。更新所有插件kubectl krew upgrade一条命令升级所有已安装的插件。更新插件索引kubectl krew update更新本地的插件列表在搜索新插件前执行它是个好习惯 -2。卸载列出已安装插件kubectl krew list查看你的系统里已经通过 Krew 装了哪些插件。卸载插件kubectl krew uninstall 插件名当不再需要某个插件时用它来干净地移除。9、resource-capacity 资源使用情况查看1、 安装# 设置 HTTP/HTTPS 代理根据你的代理地址修改exportHTTP_PROXYhttp://你的代理地址:端口exportHTTPS_PROXYhttp://你的代理地址:端口# 让 git 也使用代理gitconfig--globalhttp.proxy$http_proxygitconfig--globalhttps.proxy$https_proxy## 确认代理env|grep-iproxy## 取消git代理gitconfig--global--unsethttp.proxygitconfig--global--unsethttps.proxy# 然后重新执行安装kubectl krewinstallresource-capacity## -v4 是日志信息输出kubectl krewinstallresource-capacity-v4## 安装完毕后取消代理保持kube-api走内网代理exportno_proxy192.168.1.100,localhost,127.0.0.1echoexport no_proxy192.168.1.100,localhost,127.0.0.1~/.bashrcsource~/.bashrc## 验证是否走内网curl-khttps://192.168.1.100:6443/version2、使用# 查看所有命名空间的 Pod 资源请求/限制kubectl resource-capacity--pods# 指定命名空间例如 longhorn-systemkubectl resource-capacity--pods-nlonghorn-system# 查看所有命名空间kubectl resource-capacity--pods--all-namespaces10、 kubespy 事件跟踪1、安装1、网络配置# 临时清除代理环境变量unsethttp_proxy https_proxy HTTP_PROXY HTTPS_PROXY## 设置代理环境变量当前终端有效exporthttp_proxyhttp://代理地址exporthttps_proxyhttp://代理地址## 确认代理生效env|grep-iproxy## 测试网络联通性curl-Ihttps://github.com2、查看资源# 获取最新版本信息不直接下载curl-shttps://api.github.com/repos/pulumi/kubespy/releases/latest|greptag_name# 查看该版本下有哪些资源文件curl-shttps://api.github.com/repos/pulumi/kubespy/releases/latest|grepbrowser_download_url3、安装# 下载 tar.gz 压缩包wget--no-check-certificate-Okubespy.tar.gz https://github.com/pulumi/kubespy/releases/download/v0.6.3/kubespy-v0.6.3-linux-amd64.tar.gz## 查看文件大少和类型ls-lh|grepkubespy## 解压文件tar-xzfkubespy.tar.gz## 移动到系统 PATH 并赋予执行权限chmodx kubespysudomvkubespy /usr/local/bin/## 验证[rootmster ~]# kubespy --version[rootmster ~]# file /usr/local/bin/kubespy/usr/local/bin/kubespy: ELF64-bit LSB executable, x86-64, version1(SYSV), statically linked, not stripped2、 kubespy 命令参考kubespy 主要用于实时追踪 Kubernetes 资源的变化特别适合观察滚动更新、Pod 状态变化等动态过程。kubespy 是一个 Kubernetes 资源状态追踪工具可以帮助开发者实时观察资源变化过程。1. 核心命令概览子命令作用常用场景trace追踪复杂资源如 Deployment的滚动更新过程显示事件和状态变化观察 Deployment 滚动更新、StatefulSet 扩缩容status监控资源的.status字段变化输出 JSON diff查看 Pod 状态变化、Service Endpoints 变化changes监控资源任意字段的变化输出 JSON diff追踪 ConfigMap、Secret 等配置变更record记录资源相关的所有事件Events调试资源创建失败、状态异常问题2. 详细使用说明2.1 trace - 追踪复杂资源变化追踪 Deployment、StatefulSet 等复杂资源的滚动更新过程2.2 status 跟踪状态kubespy statusapiVersionkind[namespace/]name[flags]## apiVersion 快速查询的方法1、kubectl explainresource2、kubectl get pod php-apache-d9bcbb559-ccfpf-oyaml|head-n53、kubectl api-resources|greppod

更多文章