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

news2024/11/15 8:37:45

写在前面


  • 分享一个小工具 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]
└─$

博文参考


https://github.com/ahmetb/kubectl-tree

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java---微服务---Nacos安装

Nacos安装1.Windows安装1.1.下载安装包1.2.解压1.3.端口配置1.4.启动1.5.访问2.Linux安装2.1.安装JDK2.2.上传Nacos安装包2.3.解压2.4.端口配置2.5.启动2.6.访问3.Nacos的依赖1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面&#xff0c;提供…

Java/JavaScript有哪些图形图像处理的框架?

文章目录一个小问题引发的学习热潮其它几个图形库Eclipse GEF框架Java图像库JS 的图形框架图形处理库图像编辑物理引擎流程图/组织图/图编辑等全景图/AR/VR3D库Javascript游戏编程库尾声一个小问题引发的学习热潮 一直对Java图形图像编程念兹在兹&#xff0c;书架上有几本相关…

2、IDEA的卸载与安装

文章目录2、IDEA的卸载与安装2.1 卸载过程2.2 安装前的准备2.3 安装过程2.4注册过程方式一&#xff1a;免费试用30天方式二&#xff1a;官网购买方式三&#xff1a;教育使用2.5 闪退问题【尚硅谷】idea实战教程-讲师&#xff1a;宋红康 生活是属于每个人自己的感受&#xff0c;…

3.1 卷积神经网络的应用领域|卷积的作用|卷积特征值的计算方法|得到特征图表示|步长与卷积核大小对结果的影响|边缘填充方法

文章目录卷积神经网络的应用领域卷积的作用卷积特征值的计算方法得到特征图表示步长与卷积核大小对结果的影响边缘填充方法卷积神经网络的应用领域 检测任务分类与检索超分辨率重构医学任务无人驾驶NVIDIA Tegra X1&#xff08;显卡 GPU&#xff09; 卷积的作用 卷积神经网络…

产品设计-基础控件-信息输出控件

产品设计-基础控件-信息输出控件1.1 走马灯1.1.1 图片轮播样式1.1.2 文字轮播样式1.2 折叠面板1.3 时间轴与步骤条1.3.1 时间轴1.3.2 步骤条1.4标签和徽标1.4.1 标签和徽标1.4.2 徽标1.5 面包屑与查询器1.5.1 面包屑1.5.2 查询器1.6 列表页与详情页1.6.1 列表页1.6.2 详情页1.7…

【实操案例十】函数操作 实例代码及运行效果图!

任务一&#xff1a;Mini计算器 # 任务一&#xff1a;Mini计算器 def calc(a, b, op):if op :return add(a, b)elif op -:return sub(a, b)elif op *:return mul(a, b)elif op /:if b ! 0:return div(a, b)else:return 0不能为除数&#xff01;def add(a, b):return a bde…

这种银行病毒是2022年12月的头号恶意软件

到 2022 年&#xff0c;全球网络攻击同比增长 38%&#xff0c;并且是由更小、更灵活的黑客和勒索软件团伙驱动的。 根据一份报告&#xff0c;全球网络攻击数量在第四季度达到历史新高&#xff0c;平均每个组织每周发生 1,168 次攻击。 现在&#xff0c;一份新报告列出了上个月…

【iMessage苹果推】iOS 当地推送(Local Push) 安装OS CSR文件尽可能多地使每个证书区分开

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

长短期记忆(LSTM)详解

入门小菜鸟&#xff0c;希望像做笔记记录自己学的东西&#xff0c;也希望能帮助到同样入门的人&#xff0c;更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上&#xff0c;有需要的朋友可以康康✨ ​​​​​​https://github.com/tt-s-t/Deep-Learning.git 目录 一…

【C语言进阶】指针进阶(干货)

目录 一、字符指针 二、指针数组 三、数组指针 1、数组指针的定义 2、&数组名和数组名的区别 3、数组指针的使用 四、数组传参和指针传参 1、一维数组传参 2、一级指针传参 3、二维数组传参 4、二级指针传参 五、函数指针 1、函数指针的定义 2、函数指针的使用 六、…

论文阅读:《Collision Avoidance Testing of the Waymo Automated Driving System》

文章目录1 背景2 方法2.1 Overview2.2 安全测试目标2.2.1 测试目标设定方法&#xff08;Method to Set the Test Objective&#xff09;2.2.2 测试目标度量方法&#xff08;Metrics to Measure the Test Objectives&#xff09;2.3 基于潜在危机情况的测试场景&#xff08;Test…

17种编程语言实现排序算法-希尔排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言&#xff1a;C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台&#xff1a;安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

Unity HurricaneVR 插件中的 VRIK 设置

IK&#xff08;反向动力学&#xff09;有利于提升 VR 应用中的沉浸感&#xff0c;比如我们可以通过对手部的追踪&#xff0c;再结合 IK&#xff0c;来模拟 VR 中人物的手臂和手肘的姿态。 Final IK 是 Unity 一款功能强大的 IK 插件&#xff0c;其中拥有适用于 VR 的 IK 功能&…

基于微信小程序的自驾游拼团小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…

逻辑陷阱型蜜罐合约

蜜罐是传统安全领域中的一个概念&#xff0c;通常指安全人员设置一些陷阱&#xff08;比较明显的漏洞&#xff09;&#xff0c;让攻击者自己掉入我们设置好的陷阱中&#xff0c;以便安全人员分析攻击者的作恶手法。蜜罐合约&#xff08;HoneyPots Contract&#xff09;也是类似…

pandarallel 是一个简单而有效的工具,可以在所有可用的 CPUs 上并行执行 pandas 操作

文章目录 一、简介二、特点三、用户指南CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、简介 官方文档地址:https://nalepae.github.io/pandarallel/ Github 链接:https://github.com/nalepae/pandarallel pandarallel 是一个简单而有效的工具,可以在所有可用的 CPU…

06 |「栈和队列」简析

前言 前言&#xff1a;研究一个数据结构的时候&#xff0c;首先讲的是增删改查。 文章目录前言一、简介1. 结构2. 特点3. 存储二、栈1. 类比举例2. 操作3. 实现1&#xff09;顺序栈&#xff08;常用&#xff09;a. 核心b. 要素c. 入栈d. 出栈2&#xff09;链式栈三、队列1. 类比…

【手写 Vue2.x 源码】第四十篇 - 组件部分 - 组件的生命周期

一&#xff0c;前言 上篇&#xff0c;介绍了组件部分-组件的编译&#xff0c;主要涉及以下几部分&#xff1a; 组件编译流程介绍&#xff1a;html->render->vnode创建组件虚拟节点&#xff1a;createComponent 本篇&#xff0c;组件部分-组件的生命周期&#xff1b; 二…

logstash + logback实现分布式日志采集

&#x1f60a; 作者&#xff1a; 一恍过去&#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390&#x1f38a; 社区&#xff1a; Java技术栈交流&#x1f389; 主题&#xff1a; logstash logback实现分布式日志采集⏱️ 创作时间&#xff1a; 2023年1…

Logback基本使用

文章目录Logback的使用1. logback入门2. logback 配置3. logback-access的使用Logback的使用 Logback是由log4j创始人设计的另一个开源日志组件&#xff0c;性能比log4j要好官方网站&#xff1a;https://logback.qos.ch/index.htmlLogback主要分为三个模块&#xff1a; logbac…