Kubecm:管理你的 kubeconfig

简介: 介绍一款小工具:kubecm,帮助你管理杂乱无章的 kubeconfig。

封面

前言

该项目脱胎于 mergeKubeConfig 项目,最早写该项目的目的是在一堆杂乱无章的 kubeconfig 中自由的切换。随着需要操作的 Kubernetes 集群越来越多,在不同的集群之间切换也越来越麻烦,而操作 Kubernetes 集群的本质不过是通过 kubeconfig 访问 Kubernetes 集群的 API Server,以操作 Kubernetes 的各种资源,而 kubeconfig 不过是一个 yaml 文件,用来保存访问集群的密钥,最早的 mergeKubeConfig 不过是一个操作 yaml 文件的 Python 脚本。而随着 golang 学习的深入,也就动了重写这个项目的念头,就这样 kubecm 诞生了。

kubecm

kubecm 由 golang 编写,支持 Mac Linuxwindows 平台,delete rename switch 提供比较实用的交互式的操作,目前的功能包括:

  • add :添加新的 kubeconfig$HOME/.kube/config
  • completion :命令行自动补全功能
  • delete:删除已有的 context ,提供交互式和指定删除两种方式
  • merge:将指定目录中的 kubeconfig 合并为一个 kubeconfig 文件
  • rename:重名指定的 context,提供交互式和指定重命名两种方式
  • switch:交互式切换 context

安装

kubecm 支持 Mac Linuxwindows 平台,安装方式也比较简单:

MacOS

使用 brew 或者直接下载二进制可执行文件

brew install sunny0826/tap/kubecm

Linux

下载二进制可执行文件

# linux x86_64
curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Linux_x86_64.tar.gz
tar -zxvf kubecm.tar.gz kubecm
cd kubecm
sudo mv kubecm /usr/local/bin/

Windows

下载二进制可执行文件,并将文件移动到 $PATH 中即可

命令行自动补全

kubecm 提供了和 kubectl 一样的 completion 命令行自动补全功能(支持 bash/zsh)

zsh 为例,在 $HOME/.zshrc 中添加

source <(kubecm completion zsh)

然后使用 source 命令,使其生效

source $HOME/.zshrc

之后,在输入 kubecm 后按 tab 键,就可以看到命令行自动补全的内容

image

操作 kubeconfig

kubecm 可以实现 kubeconfig 的查看、添加、删除、合并、重命名和切换

查看

# 查看 $HOME/.kube/config 中所有的 context
kubecm

添加

# 添加 example.yaml 到 $HOME/.kube/config.yaml,该方式不会覆盖源 kubeconfig,只会在当前目录中生成一个 config.yaml 文件
kubecm add -f example.yaml

# 功能同上,但是会将 example.yaml 中的 context 命名为 test
kubecm add -f example.yaml -n test

# 添加 -c 会覆盖源 kubeconfig
kubecm add -f example.yaml -c

删除

# 交互式删除
kubecm delete
# 删除指定 context
kubecm delete my-context

合并

# 合并 test 目录中的 kubeconfig,该方式不会覆盖源 kubeconfig,只会在当前目录中生成一个 config.yaml 文件
kubecm merge -f test 

# 添加 -c 会覆盖源 kubeconfig
kubecm merge -f test -c

重命名

# 交互式重命名
kubecm rename
# 将 dev 重命名为 test
kubecm rename -o dev -n test
# 重命名 current-context 为 dev
kubecm rename -n dev -c

效果展示

ezgif.com-optimize.gif

结语

kubecm 项目的初衷为学习 golang 并熟悉 client-go 的使用,随着使用的深入,断断续续增加了不少功能,开发出了一个看上去还算正规的项目。总的来说都是根据自己的喜好来开发的业余项目,欢迎各位通过 ISSUE 来进行交流和讨论。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
Linux 应用服务中间件 PHP
Linux下搭建PHP环境-源码编译安装PHP7.2
Linux下搭建PHP环境-源码编译安装PHP7.2
876 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
275909 0
|
10月前
|
存储 人工智能 缓存
阿里云服务器五代至九代实例规格详解及性能提升对比,场景适配与选择指南参考
目前阿里云服务器的实例规格经过多次升级之后,最新一代已经升级到第九代实例,当下主售的云服务器实例规格也以八代和九代云服务器为主,对于初次接触阿里云服务器实例规格的用户来说,可能并不是很清楚阿里云服务器五代、六代、七代、八代、九代实例有哪些,他们之间有何区别,下面小编为大家介绍下阿里云五代到九代云服务器实例规格分别有哪些以及每一代云服务器在性能方面具体有哪些提升,以供大家参考和了解。
844 15
|
人工智能 运维 Kubernetes
2025 超详细!Lens Kubernetes IDE 多平台下载安装与集群管理教程
Lens 是一款企业级 Kubernetes 可视化操作平台,2025版实现了三大技术革新:AI智能运维(异常检测准确率98.7%)、多云联邦管理(支持50+集群)和实时3D拓扑展示。本文介绍其安装环境、配置流程、核心功能及高阶技巧,帮助用户快速上手并解决常见问题。适用于 Windows、macOS 和 Ubuntu 系统,需满足最低配置要求并前置依赖组件如 kubectl 和 Helm。通过 Global Cluster Hub 实现多集群管理,AI辅助故障诊断提升运维效率,自定义监控看板和插件生态扩展提供更多功能。
|
Kubernetes 应用服务中间件 nginx
Kubernetes 使用Rook-Ceph作为持久化存储PV
本文介绍如何在 Kubernetes 中使用 Rook-Ceph 作为 PV,重点演示 CephFS 的配置与部署流程。内容涵盖前提条件、Rook-Ceph 安装、StorageClass 设置、PVC 使用示例、Ceph Dashboard 配置、测试应用(如 Nginx 和 Alpine)、ConfigMap 挂载、服务暴露、跨可用区高可用方案等关键步骤,并附有命令行操作示例和验证方法。
Kubernetes 使用Rook-Ceph作为持久化存储PV
|
存储 Kubernetes 调度
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
3682 1
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
缓存 Ubuntu Linux
Docker Buildx 简介与安装指南
Docker Buildx 是一个强大的工具,提供了多架构构建、并行构建和高级缓存管理等功能。通过正确安装和配置 Buildx,可以显著提升 Docker 镜像的构建效率和灵活性。希望本文能帮助你更好地理解和使用 Docker Buildx,以提高开发和部署的效率。
7467 16