关注【云原生百宝箱】公众号,获取更多云原生消息
"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 仅兼容
kubectl
v1.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 shell
help Help about any command
index Manage custom plugin indexes
info Show information about an available plugin
install Install kubectl plugins
list List installed kubectl plugins
search Discover kubectl plugins
uninstall Uninstall plugins
update Update the local copy of the plugin index
upgrade Upgrade installed plugins to newer versions
version Show krew version and diagnostics
Flags:
-h, --help help for krew
-v, --v Level number for the log level verbosity
Use "kubectl krew [command] --help" for more information about a command.
Fish shell
1.确保git
已安装。
2.在你的终端中运行此命令以下载并安装krew
:
begin
set -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. 运行
kubectl krew
以检查安装。
Windows环境
-
1. 确保
git
已安装。 -
2. 从https://github.com/kubernetes-sigs/krew/releases页面下载`krew.exe`
-
3. 使用管理员权限启动
cmd.exe
。 -
4. 运行以下命令安装 krew:
.\krew install krew
-
5. 将
%USERPROFILE%\.krew\bin
目录添加到你的PATH
环境变量 -
6. 启动一个新的命令行窗口。
-
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 lineage
: https://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轻松驾驭容器,操作高效省心