当前位置: 首页 > news >正文

API对象上千个,有啥关联性,kubectl-tree一键搞定

图片

关注【云原生百宝箱】公众号,获取更多云原生消息

"kubectl-tree 是一款强大的 kubectl 插件,通过 ownerReferences 实现 Kubernetes 对象之间的所有权关系探索。相较于 kubectl lineage,它不仅更全面理解 API 对象的逻辑关系,而且借助ownerReferences。这使得揭示 Kubernetes 中对象间复杂的所有权结构变得更加简便,为用户提供更直观、全面的视角,助力更深入的集群管理与分析。"

kubectl-tree

一个 kubectl 插件,用于通过ownerReferences探索 Kubernetes 对象之间的所有权关系。

插件kubectl lineage[1] 与kubectl tree非常相似,但它只能理解 一些 API 对象之间的逻辑关系[2],而不需要ownerReferences。

安装插件管理器(Krew )

注意: krew 仅兼容 kubectlv1.12或更高版本。

Krew 目前支持macOS/Linux: bash/zsh[3], fish[4] 和**Windows[5]**

macOS/Linux环境

Bash or ZSH shellsde

1.确保git已安装。

2.运行此命令以下载并安装krew

(set -x; cd "$(mktemp -d)" &&OS="$(uname | tr '[:upper:]' '[:lower:]')" &&ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&KREW="krew-${OS}_${ARCH}" &&curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&tar zxvf "${KREW}.tar.gz" &&./"${KREW}" install krew
)

3.将$HOME/.krew/bin目录添加到你的 PATH 环境变量。为此,需要在你的.bashrc或者.zshrc文件并添加如下内容:

# vim ~/.bashrc 在文件末尾添加一下内容
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

并重新启动你的shell。

或者直接使用如下命令,更方便快捷

echo 'export PATH=$HOME/.krew/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

4.运行kubectl krew以检查安装。

$ kubectl krew
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]"Usage:kubectl krew [command]Available Commands:completion  generate the autocompletion script for the specified shellhelp        Help about any commandindex       Manage custom plugin indexesinfo        Show information about an available plugininstall     Install kubectl pluginslist        List installed kubectl pluginssearch      Discover kubectl pluginsuninstall   Uninstall pluginsupdate      Update the local copy of the plugin indexupgrade     Upgrade installed plugins to newer versionsversion     Show krew version and diagnosticsFlags:-h, --help      help for krew-v, --v Level   number for the log level verbosityUse "kubectl krew [command] --help" for more information about a command.
Fish shell

1.确保git已安装。

2.在你的终端中运行此命令以下载并安装krew

beginset -x; set temp_dir (mktemp -d); cd "$temp_dir" &&set OS (uname | tr '[:upper:]' '[:lower:]') &&set ARCH (uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/') &&set KREW krew-$OS"_"$ARCH &&curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/$KREW.tar.gz" &&tar zxvf $KREW.tar.gz &&./$KREW install krew &&set -e KREW temp_dir &&cd -
end

3.将$HOME/.krew/bin目录添加到你的 PATH 环境变量。为此,为此,需要在你的config.fish文件并添加如下内容:

set -gx PATH $PATH $HOME/.krew/bin

并重新启动你的shell。

  1. 1. 运行kubectl krew以检查安装。

Windows环境

  1. 1. 确保git已安装。

  2. 2. 从https://github.com/kubernetes-sigs/krew/releases页面下载`krew.exe`

  3. 3. 使用管理员权限启动cmd.exe

  4. 4. 运行以下命令安装 krew:.\krew install krew

  5. 5. 将%USERPROFILE%\.krew\bin目录添加到你的PATH环境变量

  6. 6. 启动一个新的命令行窗口。

  7. 7. 运行kubectl krew以检查安装。

安装kubectl-tree

使用krew[6]插件管理器安装:

kubectl krew install tree
kubectl tree --help

演示

示例(Deployment):

图片

示例 Kubernetes 部署对象层次结构

示例((Knative Service):

图片

使用 Knative Service 的 Kubernetes 对象层次结构示例

示例(Agones Fleet)):

图片

Agones Fleet 的 Kubernetes 对象层次结构示例

示例(Kserve Inferenceservices)):

图片

Kserve 的 Kubernetes 对象层次结构示例

注意

默认情况下,插件将仅搜索与指定对象相同的命名空间中的“命名空间”对象。

可以使用-A--all-namespaces标志来搜索所有命名空间中的命名空间和非命名空间对象。

引用链接

[1] kubectl lineagehttps://github.com/tohjustin/kube-lineage
[2] API 对象之间的逻辑关系: https://github.com/tohjustin/kube-lineage#supported-relationships
[3] bash/zsh: https://krew.sigs.k8s.io/docs/user-guide/setup/install/#bash
[4] fish: https://krew.sigs.k8s.io/docs/user-guide/setup/install/#fish
[5] Windows: https://krew.sigs.k8s.io/docs/user-guide/setup/install/#windows
[6] krew: https://krew.sigs.k8s.io/

- END -


推荐阅读

  • 叮,你收到一份来自CNCF的云原生景观简介

  • 要魔改Kubernetes,我们可以从哪里扩展

  • 问题排查太烦心,试试GPT的超能力

  • Copa:无需重建镜像,直接修补容器漏洞

  • 玩转K8s网络:16张图带你从小白到专家

  • 1000节点集群,5秒搭建好

  • 流量何处来又往何处去,这次一目了然

  • Kubernetes CNI 插件选型和应用场景探讨

  • 块/文件/对象存储难统一管理,试试这个集大成者

  • GPU越来越难买,如何提高利用率

  • 监控外部服务太复杂?ServiceMonitor 和 PrometheusRule有妙招

  • 容器快了,却不安全了,Rootless 安排上

  • 还在Jenkins点点,快来体验Tekton的灵活自动化

  • 懒人福音:LazyDocker轻松驾驭容器,操作高效省心

http://www.lryc.cn/news/279341.html

相关文章:

  • java自定义工具类在List快速查找相同字段值对象
  • codeforces Hello 2024 - C - Grouping Increases --- 题解
  • STM32H5培训(一)总览
  • 亚马逊云科技 WAF 部署小指南(五):在客户端集成 Amazon WAF SDK 抵御 DDoS 攻击...
  • 高光谱分类论文解读分享之基于多模态融合Transformer的遥感图像分类方法
  • Trans论文复现:基于数据驱动的新能源充电站两阶段规划方法程序代码!
  • 将抖音视频转成MP3并下载
  • C程序训练:与输入有关的错误
  • 制作 CentOS Stream9 的U盘系统启动盘
  • Vulnhub靶机:driftingblues 1
  • CloudCompare——点云空间圆拟合
  • 解决POI报错POIXMLTypeLoader不存在的问题
  • 关于rewriteBatchedStatements的源码分析
  • 自动化神器 Playwright 的 Web 自动化测试解决方案
  • docker filebeat 将日志多级目录和多维json数据日志同步到es
  • 【机器学习】模型参数优化工具:Optuna使用分步指南(附XGB/LGBM调优代码)
  • webview全屏处理,即插即用
  • 实录分享 | 央企大数据平台架构发展趋势与应用场景的介绍
  • UE5 将类修改目录
  • GPT实战系列-ChatGLM3管理工具的API接口
  • Python 列表、元组、字典区别
  • [足式机器人]Part2 Dr. CAN学习笔记 - Ch03 傅里叶级数与变换
  • 你想使用域名访问一个ip的网页,你应该怎么办呢?
  • SAP存放状态的几个常用表
  • AUTO SEG-LOSS SEARCHING METRIC SURROGATES FOR SEMANTIC SEGMENTATION
  • openssl3.2 - 官方demo学习 - 索引贴
  • textarea文本框根据输入内容自动适应高度
  • 【JAVA基础--计算机网络】--TCP三次握手+四次挥手
  • 最新靠谱可用的-Mac-环境下-FFmpeg-环境搭建
  • 【漏洞复现】Hikvision SPON IP网络对讲广播系统存在命令执行漏洞CVE-2023-6895