kubectl也可以扩展了

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 简单介绍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了

参考

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
Prometheus 运维 Kubernetes
扩展 Kubernetes 之 Kubectl Plugin
kubectl 是 重要的 kubernetes 管理/运维工具 kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章 这篇文章首先会简单介绍几个 kubectl 你可能不知道的小技巧,主要篇幅介绍 kubectl 的 plugin. kubectl 小技巧
312 0
|
Kubernetes Cloud Native 测试技术
如何为Kubernetes配置Pod水平自动扩展
干货教程!教你如何在K8S上实现根据CPU等实际使用量与用户的期望值进行比对,实现部署的自动扩展和缩减! 介 绍 Kubernetes有一个强大的功能,它能在运行的服务上进行编码并配置弹性伸缩。如果没有弹性伸缩功能,就很难适应部署的扩展和满足SLAs。
2752 0
|
9月前
|
Kubernetes 应用服务中间件 nginx
Kubernetes详解(六)——Pod对象部署和应用
在Kubernetes系列中,本文聚焦Pod对象的部署和管理。首先,通过`kubectl run`命令创建Pod,如`kubectl run pod-test --image=nginx:1.12 --port=80 --replicas=1`。接着,使用`kubectl get deployment`或`kubectl get pods`查看Pod信息,添加`-o wide`参数获取详细详情。然后,利用Pod的IP地址进行访问。最后,用`kubectl delete pods [Pod名]`删除Pod,但因Controller控制器,删除后Pod可能自动重建。了解更多细节,请参阅原文链接。
166 5
|
Kubernetes 应用服务中间件 nginx
Kubernetes集群安装及kubectl命令行大全
Kubernetes集群安装及kubectl命令行大全
247 0
Kubernetes集群安装及kubectl命令行大全
|
域名解析 Kubernetes 容器
【kubernetes】安装 krew 管理kubectl 插件
【kubernetes】安装 krew 管理kubectl 插件
626 2
【kubernetes】安装 krew 管理kubectl 插件
|
Kubernetes 监控 容器
kubectl 的作用
kubectl是Kubernetes命令行工具,用于与Kubernetes集群进行交互和管理。它提供了许多命令,用于管理集群、部署应用、监视资源状态、调试问题等。 以下是kubectl的主要功能: 1. 配置管理:kubectl可以用于查看、创建、修改和删除Kubernetes集群的配置信息,如节点、命名空间、服务账号、角色等。 2. 应用管理:kubectl可以用于管理应用程序的部署、扩容、缩放、更新和删除。通过kubectl,您可以创建和管理Pod、Service、Deployment、StatefulSet等资源对象。 3. 资源监控:kubectl可以获取和监视Kubernet
286 0
|
监控 Kubernetes API
使用基于策略的网络扩展Kubernetes Deployments
今天的文章是由Nuage Networks 的产品管理总监Harmeet Sahni书写,内容是关于他们在Kubernetes贡献和Policy-Based Networking的见解。 尽管距离Kubernetes 1.0发布仅仅只有18个月,我们已经看到Kubernetes领先容器业务流程平台部署的分布式应用程序。
1241 0
|
5月前
|
JSON Kubernetes API
深入理解Kubernetes配置:编写高效的YAML文件
深入理解Kubernetes配置:编写高效的YAML文件
|
9月前
|
运维 Kubernetes Linux
Kubernetes详解(十)——Pod对象高级控制命令
Kubernetes详解(十)——Pod对象高级控制命令
127 0
|
Kubernetes 应用服务中间件 nginx
kubernetes集群命令行工具kubectl介绍&yaml文件介绍-20230208
kubernetes集群命令行工具kubectl介绍&yaml文件介绍-20230208
235 0

热门文章

最新文章