kubectl-tree 资源归属树
kubectl-tree 是 kubectl 插件,用 ownerReferences 展开资源的归属关系,例如 Deployment → ReplicaSet → Pod、Service → EndpointSlice、PVC → PV。排障时能快速看清“这个 Pod 是谁创建的”。
核心原理是递归读取 metadata.ownerReferences,不依赖标签,因此比手动 grep 更准确。
安装 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/')" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/krew-${OS}_${ARCH}.tar.gz" &&
tar zxvf "krew-${OS}_${ARCH}.tar.gz" &&
./krew-"${OS}_${ARCH}" install krew
)
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
安装插件:
kubectl krew install tree
查看 Deployment 的归属树:
kubectl tree deploy demo -n demo
查看所有命名空间:
kubectl tree deploy demo -n demo -A
查看 Service:
kubectl tree svc demo -n demo
查看 CRD 资源:
kubectl tree rollouts demo -n demo
ownerReferences 的 blockOwnerDeletion 和 finalizer 会影响子资源。kubectl tree — 展示归属树kubectl get pod -o yaml — 查看 ownerReferenceskubectl describe — 查看事件kubectl krew — 插件管理kubectl get all — 查看常用资源