Kubernetes:通过 kubectl 插件 kubectl-tree 查看API对象层级关系
【摘要】 1写在前面分享一个小工具 kubectl-tree,用于查看 k8s API 对象层级关系比如对于有状态应用来讲,可以看到Deployment --> ReplicaSet --> Pod 的构成关系博文内容涉及:tree 插件的安装以及使用。理解不足小伙伴帮忙指正 岂其食鱼,必河之鲤?岂其取妻,必宋之子?——《陈风·衡门》有时候我们希望可以看到,k8s 中 有状态应用、无状态应用和 pod...
1写在前面
-
分享一个小工具 kubectl-tree
,用于查看 k8s API 对象层级关系 -
比如对于有状态应用来讲,可以看到 Deployment --> ReplicaSet --> Pod
的构成关系 -
博文内容涉及: tree
插件的安装以及使用。 -
理解不足小伙伴帮忙指正
岂其食鱼,必河之鲤?岂其取妻,必宋之子?——《陈风·衡门》
有时候我们希望可以看到,k8s 中 有状态应用、无状态应用和 pod 的所有关系,但是往往需要多条命名才可以实现,其实通过 kubectl-tree
插件,可以很轻松的做到。
kubectl-tree
一个 kubectl 插件,它用于探索 Kubernetes 对象之间的所有权利关系。
下载安装
如果安装了 krew
插件管理器,可以通过下面的方式,前提是你有科学上网
kubectl krew install tree
kubectl tree --help
如果没有,那可以通过 浏览器下载下面的二进制安装包
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$wget https://github.com/ahmetb/kubectl-tree/releases/download/v0.4.3/kubectl-tree_v0.4.3_linux_amd64.tar.gz
然后配置为 kubectl
插件
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$tar -zxvf kubectl-tree_v0.4.3_linux_amd64.tar.gz
LICENSE
kubectl-tree
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$mv kubectl-tree /usr/local/bin
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree --version
kubectl version v0.4.3
查看依赖关系
无状态应用关系查看
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl get deployments.apps -n awx
NAME READY UP-TO-DATE AVAILABLE AGE
awx-demo 1/1 1 1 85d
awx-operator-controller-manager 1/1 1 1 85d
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree deployments awx-demo -n awx
NAMESPACE NAME READY REASON AGE
awx Deployment/awx-demo - 85d
awx └─ReplicaSet/awx-demo-65d9bf775b - 85d
awx └─Pod/awx-demo-65d9bf775b-hc58x True 85d
可以看到,无状态应用由 Deployment、 ReplicaSet,Pod
三个资源对象构成
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree deployments awx-operator-controller-manager -n awx
NAMESPACE NAME READY REASON AGE
awx Deployment/awx-operator-controller-manager - 85d
awx └─ReplicaSet/awx-operator-controller-manager-79ff9599d8 - 85d
awx └─Pod/awx-operator-controller-manager-79ff9599d8-m7t8k True 85d
多副本的情况
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree deployments liruilong
NAMESPACE NAME READY REASON AGE
liruilong-topo-namespace Deployment/liruilong - 12d
liruilong-topo-namespace └─ReplicaSet/liruilong-744498fcbd - 12d
liruilong-topo-namespace ├─Pod/liruilong-744498fcbd-48t6z False 7d10h
liruilong-topo-namespace └─Pod/liruilong-744498fcbd-4bmf4 True 6d1h
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$
Service 关系查看
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl get services -n awx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
awx-demo-postgres-13 ClusterIP None <none> 5432/TCP 85d
awx-demo-service NodePort 10.104.176.210 <none> 80:30066/TCP 85d
awx-operator-controller-manager-metrics-service ClusterIP 10.108.71.67 <none> 8443/TCP 85d
Service 由 Service、EndpointSlice
构成,这里如果是 1.21 之前的版本,看到的应该是 Endpoints
,而不是 EndpointSlice
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree svc awx-demo-service -n awx
NAMESPACE NAME READY REASON AGE
awx Service/awx-demo-service - 85d
awx └─EndpointSlice/awx-demo-service-6gs4d - 85d
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree svc awx-demo-postgres-13 -n awx
NAMESPACE NAME READY REASON AGE
awx Service/awx-demo-postgres-13 - 85d
awx └─EndpointSlice/awx-demo-postgres-13-4tc87 - 85d
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree svc awx-operator-controller-manager-metrics-service -n awx
NAMESPACE NAME READY REASON AGE
awx Service/awx-operator-controller-manager-metrics-service - 85d
awx └─EndpointSlice/awx-operator-controller-manager-metrics-service-7wtml - 85d
有状态应用关系查看
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl get -n awx statefulsets.apps
NAME READY AGE
awx-demo-postgres-13 1/1 85d
web 0/3 30d
有状态应用由 statefulsets、ControllerRevision、Pod
构成
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl tree statefulsets awx-demo-postgres-13 -n awx
NAMESPACE NAME READY REASON AGE
awx StatefulSet/awx-demo-postgres-13 - 85d
awx ├─ControllerRevision/awx-demo-postgres-13-85958bcbcd - 85d
awx └─Pod/awx-demo-postgres-13-0 True 85d
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$
2博文参考
https://github.com/ahmetb/kubectl-tree
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)