kubectl也可以扩展了

简介: 简单介绍1.12.x的kubectl的plugin的扩展机制的演示

前言

kubernetes作为一个开放式式的分布式系统,其提供了多种扩展机制如CRD, service catalog等给用户做系统功能增强以及外部系统对接等。当时以往版本都是以扩展服务端的功能,现在刚发布的全新版本1.12.0已经可以支持kubectl命令行的扩展了。下面将通过一个简单例子来演示如何做kubectl的扩展。

请注意:目前kubectl的扩展alpha状态,从1.12,0开始提供。

kubectl扩展例子演示

例子的目的

通常我们会通过kubect get pod/xxx -o yaml的方式来展示对应的k8s资源对象的申明,但是这个输出比较不太友好,输出没有对于关键字做高亮展示,可否提供一个命令对于输出做渲染呢?

其实很简单,通过简单的kubectl命令扩展就可以做到,我们把这个扩展的kubectl子命令定义为inspect,这样,我们期望的命令是:

kubectl inspect pod/xxxx

然后期望结果类似如下的渲染展示:

image

前置条件

  • 升级kubectl 到新的1.12.x版本,在Mac下可以执行:
brew upgrade kubernetes-cli
  • 安装对应的渲染工具bat
brew install bat

创建kubectl的inspect plugin

/usr/local/bin下创建一个kubectl-inspect的文件,并输入以下内容
这里需要注意的是,文件名必须是kubectl-<子命令>的形式

#!/bin/bash
kubectl get "$@" -o yaml | bat -l yaml -p

并将该文件改为可执行

chmod +x kubectl-inspect

测试

在命令行执行

kubectl inspect pod/xxx

就可以看上面的效果了

小结

这个plugin的机制还是十分诱人的,让维护人员都可以集中在kubectl命令里操作了。kubernetes在向分布式的OS又向前迈了一小步,kubectl就像是linux的cmd了

参考

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 缓存 Android开发
安卓Jetpack Compose+Kotlin, 使用ExoPlayer播放多个【远程url】音频,搭配Okhttp库进行下载和缓存,播放完随机播放下一首
这是一个Kotlin项目,使用Jetpack Compose和ExoPlayer框架开发Android应用,功能是播放远程URL音频列表。应用会检查本地缓存,如果文件存在且大小与远程文件一致则使用缓存,否则下载文件并播放。播放完成后或遇到异常,会随机播放下一首音频,并在播放前随机设置播放速度(0.9到1.2倍速)。代码包括ViewModel,负责音频管理和播放逻辑,以及UI层,包含播放和停止按钮。
|
7月前
|
存储 弹性计算 分布式计算
2026年阿里云 ECS 本地盘解析:NVMe SSD 与 SATA HDD 特性及选型指南
在阿里云 ECS 实例的存储方案中,本地盘凭借 “物理机直连” 的特性,提供低延迟、高 IOPS 的存储体验,成为高性能与海量存储场景的重要选择。目前阿里云本地盘主要分为 NVMe SSD 与 SATA HDD 两类,二者在性能、适用场景、实例兼容性上差异显著,需结合业务需求精准匹配。本文从技术特性、性能参数、适配实例及场景选型四方面展开解析,为用户提供客观参考。
2026年阿里云 ECS 本地盘解析:NVMe SSD 与 SATA HDD 特性及选型指南
|
算法 C语言
【趣学C语言和数据结构100例】6-10
本文精选了五个C语言编程实例,涵盖物理规律(球的反弹)、数学规律(猴子吃桃)、迭代法求平方根、牛顿迭代法求方程根及筛选法求素数等经典问题。每个实例不仅提供了详细的代码实现,还深入解析了背后的算法原理,旨在帮助读者理解并掌握数据结构与算法的核心概念,提升编程技能。通过这些练习,读者可以加强对C语言及算法设计的理解,为解决实际问题打下坚实基础。
458 125
【趣学C语言和数据结构100例】6-10
|
机器学习/深度学习 数据采集 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用(216)
本文探讨Java大数据可视化在城市空气质量监测与污染溯源中的创新应用,结合多源数据采集、实时分析与GIS技术,助力环保决策,提升城市空气质量管理水平。
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用(216)
|
存储 安全 数据安全/隐私保护
深入探索iOS与Android的隐私保护机制
在数字化时代,智能手机已成为我们生活中不可或缺的一部分,而随之而来的隐私安全问题也日益凸显。本文旨在对比分析iOS和Android两大操作系统在隐私保护方面的策略和技术实现,揭示它们在设计理念、权限管理、数据加密等方面的不同之处,为读者提供一个全面了解两大系统隐私保护机制的视角。
|
供应链 API 开发者
解锁电商数据的无限可能:探秘京东商品SKU信息API接口
京东商品SKU信息API接口是电商开发与运营中的重要工具,帮助开发者获取商品的详细属性,如库存、价格、规格等。通过该接口,电商平台可以丰富商品展示页面,提升用户体验;商家能实时掌握库存动态,优化销售策略;数据分析人员可深入洞察市场趋势,实现精准营销。使用前需注册京东开放平台账号、创建应用并获取API权限,同时仔细阅读API文档以确保正确调用。代码示例展示了如何用Python调用该接口,并处理返回数据。未来,该接口将在个性化推荐、智能库存管理和数据分析等领域发挥更大作用,助力电商业务创新与发展。
1181 14
|
SQL JSON 分布式计算
干货 | Elasticsearch、Kibana数据导出实战
以下两个导出问题来自Elastic中文社区。 问题1、kibana怎么导出查询数据? 问题2:elasticsearch数据导出 就像数据库数据导出一样,elasticsearch可以么? 或者找到它磁盘上存放数据的位置,拷贝出来,放到另一个es服务器上或者转成自己要的数据格式?
干货 | Elasticsearch、Kibana数据导出实战
|
SQL 安全 数据库
故障解决:SQL Server数据库附加失败,错误3415、错误5120
本文为大家分享了SQL Server数据库附加失败的具体解决方法,供大家参考,具体内容如下
故障解决:SQL Server数据库附加失败,错误3415、错误5120
|
存储 弹性计算 固态存储
阿里云服务器NVMe SSD本地盘和SATA HDD本地盘详解
阿里云本地盘是ECS实例物理机上的硬盘,提供低延迟、高IOPS和高吞吐量的存储选项。分为NVMe SSD和SATA HDD两种类型。NVMe SSD适合I/O密集型应用,如在线业务和NoSQL数据库,支持多种ECS实例规格。SATA HDD适合大数据存储和离线计算,适用于金融和互联网行业的Hadoop计算。欲了解更多详情,可参阅阿里云块存储页面。
1649 9
|
Kubernetes Java Shell
Kubernetes(K8S) Deployment 升级和回滚
Kubernetes(K8S) Deployment 升级和回滚
460 0