告别 kubectl context 切换烦恼

Kuber Plus

Kuber Plus是一个强大的 kubectl 快捷工具,通过context 隔离来简化多context Kubernetes 命令行操作,提升开发效率。

核心价值

每个终端窗口可以独立切换到不同的kubectl context,实现多环境并行操作,无需在多个环境间反复切换。

快速入门

生成切换函数

$ clone git@github.com:H-repos/kuber-plus.git
$ source kuber-plus/kuber-plus.sh
generated: kubeapp-ns/prod-cluster
generated: kubeapp-ns/dev-cluster
generated: kubetest-ns/test-cluster

多终端并行操作

# 终端 1:操作生产环境
kubeapp-ns/prod-cluster
[app-ns@prod-cluster]$ pods  # 查看生产环境的 Pod

# 终端 2:操作开发环境  
kubeapp-ns/dev-cluster
[app-ns@dev-cluster]$ deploy  # 查看开发环境的部署

# 终端 3:操作测试环境
kubetest-ns/test-cluster
[test-ns@test-cluster]$ login test-app-pod  # 登录测试环境的 Pod

工作原理

  1. 自动生成函数

    • 读取 kubectl config view 获取所有context
    • 解析每个context的 cluster 和 namespace
    • 为每个context生成独立的切换函数
    • 切换函数执行时设置环境变量和别名,实现自动切换
  2. 切换函数命名格式kube<namespace>/<cluster>

  3. 上下文隔离

    • 每个终端独立维护自己的 kubectl context
    • 在一个终端切换context不会影响其他终端
    • 所有 kubectl 命令自动使用 --context 参数
    • 提示符显示当前上下文对应的命名空间和集群:[namespace@cluster]

附加功能特性

便捷别名

预定义的常用 kubectl 命令快捷方式:

别名 命令
pods / pod kubectl get pods
cm kubectl get cm
desc kubectl describe
get kubectl get
deploy kubectl get deployments
ctx kubectl config get-contexts

快速登录功能

使用 login 命令快速进入 pod:

login pod-name              # 进入默认容器
login pod-name container    # 进入指定容器

函数名自定义

可以通过编辑脚本中的 FUNC_NAME_REPLACEMENTS 来自定义函数名:

# 格式:"原始值/目标值"
FUNC_NAME_REPLACEMENTS=("abc-service/abc" "xyz-prod/xyz")

例如,如果您的命名空间是 abc-service,它将在函数名中被替换为 abc。如果您的集群是 xyz-prod,它将被替换为 xyz

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容