通过 kubectl 插件 kubectl-tree 查看API对象层级关系

分享一个开源小工具 kubectl-tree,用于查看 k8s API 对象层级关系。

比如对于无状态应用来讲,可以看到Deployment --> ReplicaSet --> Pod 的构成关系。


采用二进制离线方式安装:

1、下载二进制安装包

wget https://github.com/ahmetb/kubectl-tree/releases/download/v0.4.3/kubectl-tree_v0.4.3_linux_amd64.tar.gz

2、解压
tar -zxvf kubectl-tree_v0.4.3_linux_amd64.tar.gz

3、移动相关文件到 /usr/local/bin 目录
mv kubectl-tree LICENSE /usr/local/bin

4、查看tree版本

root@master1:~# kubectl tree --version
kubectl version v0.4.3
root@master1:~# 


5、查看当前k8s集群所有deployment

root@master1:~# kgd -A
NAMESPACE           NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
alertmanager        alertmanager              1/1     1            1           40d
grafana             grafata                   1/1     1            1           51d
kube-system         calico-kube-controllers   1/1     1            1           102d
kube-system         coredns                   2/2     2            2           102d
kubesphere-system   extensions-museum         1/1     1            1           102d
kubesphere-system   ks-apiserver              1/1     1            1           102d
kubesphere-system   ks-console                1/1     1            1           102d
kubesphere-system   ks-controller-manager     1/1     1            1           102d
prometheus          prometheus                1/1     1            1           51d
root@master1:~# 

查看grafana Deployment的层级关系

root@master1:~#  kubectl tree  deployment grafata  -n grafana 
W0915 13:45:19.120124  287730 warnings.go:70] v1 Endpoints is deprecated in v1.33+; use discovery.k8s.io/v1 EndpointSlice
NAMESPACE  NAME                             READY  REASON  AGE
grafana    Deployment/grafata               -              51d
grafana    ├─ReplicaSet/grafata-6b75fbc674  -              51d
grafana    └─ReplicaSet/grafata-d85c5cd6d   -              41d
grafana      └─Pod/grafata-d85c5cd6d-njndq  True           9d 
root@master1:~# 

 

查看grafana service的层级关系

root@master1:~# kubectl get service  -A  | grep grafana
grafana             grafana-service         NodePort    10.98.60.113     <none>        80:30012/TCP             101d


root@master1:~# kubectl tree svc  grafana-service -n grafana 
W0915 13:53:23.860417  294848 warnings.go:70] v1 Endpoints is deprecated in v1.33+; use discovery.k8s.io/v1 EndpointSlice
NAMESPACE  NAME                                   READY  REASON  AGE 
grafana    Service/grafana-service                -              101d
grafana    └─EndpointSlice/grafana-service-5zftp  -              101d

posted @ 2025-09-15 13:58  华哥来也  阅读(12)  评论(0)    收藏  举报
回到顶部
回到顶部