轻松管理多 Kubernetes 集群:试试 kubemux 吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
corvofeng
V2EX    程序员

轻松管理多 Kubernetes 集群:试试 kubemux 吧

  •  
  •   corvofeng 311 天前 1751 次点击
    这是一个创建于 311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近我开发了一款轻量级的 Kubernetes 多集群管理工具,叫 kubemux。这是一款专为 Kubernetes 管理优化的终端复用器封装工具,支持 tmuxzellij,帮助开发者高效管理多集群环境。


    功能亮点

    • 多集群管理:一键切换不同的 Kubernetes 集群配置
    • 支持终端复用器:兼容 tmuxzellij
    • tmuxinator 支持:轻松加载现有的 tmuxinator 配置
    • 零依赖:无需其他依赖,直接运行独立二进制文件
    • Shell 自动补全:支持 Bash 和 Zsh 的补全功能
    • 跳板机支持:能无缝连接位于跳板机后的集群

    安装方法

    MacOS

    brew install corvofeng/tap/kubemux 

    Linux

    通过 https://github.com/marcosnils/bin:

    bin install https://github.com/corvofeng/kubemux ~/usr/bin 

    或者直接使用二进制文件:

    cd /tmp wget https://github.com/corvofeng/kubemux/releases/latest/download/kubemux_linux_amd64.tar.gz tar -zxvf kubemux_linux_amd64.tar.gz sudo install -v kubemux /usr/local/bin 

    快速上手

    配置集群

    ls ~/.kube # pve-kube.config xxx kubemux kube --kube pve-kube.config # 建议启用自动补全功能: source <(kubemux completion bash) source <(kubemux completion zsh) 

    配置 tmuxinator

    mkdir ~/.tmuxinator echo ' name: kubemux root: "~/" windows: - p1: - ls - pwd - p2: - pwd - echo "hello world" - p3: htop ' > ~/.tmuxinator/kubemux.yml kubemux -p kubemux 

    文档与博客


    Demo 演示

    管理 Kubernetes 配置

    asciicast

    支持 tmuxinator

    asciicast

    支持 zellij

    asciicast


    开源与贡献

    欢迎大家提 PR !有任何改进建议,也可以通过 Issues 讨论。

    项目使用 MIT 协议

    希望大家喜欢这个工具,欢迎试用并反馈意见!

    7 条回复    2024-12-08 13:01:08 +08:00
    gyms
        1
    gyms  
       311 天前
    已 star
    hongyexiaoqing
        2
    hongyexiaoqing  
       311 天前
    没感觉有什么提高效率的
    DefoliationM
        3
    DefoliationM  
       311 天前   1
    同楼上,感觉不如 k9s,反而还要多学一套命令。
    R4rvZ6agNVWr56V0
        4
    R4rvZ6agNVWr56V0  
       11 天前
    没有学习它的欲望,不如使用 Lens ,点鼠标就能搞定大部分事
    shakaraka
        5
    shakaraka  
    PRO
       310 天前 via iPhone   1
    lens 好用很多
    corvofeng
        6
    corvofeng  
    OP
       310 天前
    @hongyexiaoqing @DefoliationM @GeekGao @wunonglin

    谢谢你们反馈, 找到适合自己的工具就可以. 我补充下开发的背景:

    它的出现是因为我是 tmux 的重度用户, 也因为工作需要用了一段时间 tmuxinator, 后来没法很好的满足要求, 所以去年才编写了这个工具.

    https://corvo.myseu.cn/2023/12/27/2023-12-26-kubemux%E7%9A%84%E5%BC%80%E5%8F%91%E4%B8%8E%E4%BD%BF%E7%94%A8/#Kuberentes-%E5%A4%9A%E9%9B%86%E7%BE%A4%E7%AE%A1%E7%90%86%E6%96%B9%E6%A1%88

    如果没有深度的命令行需求, 的确 UI 工具就足够了, 这是我平时会有的使用场景:

    > 使用 tmux 是为了能够并发的在同一个集群执行多个任务, 比如我开一个窗口跑 k9s, 另一个窗口 exec 到其中一个 pod, 再来一个窗口 port-forward, 这样不仅能同时执行多种任务, 而且可以保留在后台中, 方便 attach

    > 使用 tmuxinator/kubmux 是为了能够安全方便的切换多个集群, 我们平时管理的正式集群就有十几个, 在我看来使用 KUBECONFIG 提供的 context 切换风险太高了. 这两个工具能提供完全独立的环境, attach 进去, 可以方便的创建相同环境的终端

    其实管理 K8s 集群只是它的一个特性, 包括使用模板快速初始化自己的命令行环境, 还有针对 aws 云环境自动 pull kubeconfig 的功能
    gerorim
        7
    gerorim  
       310 天前 via iPhone
    Web 和终端又不会冲突,Web 也可以通过 ws 实现类终端的体验。而且统一的界面和后端也有利于集群管管理( yaml 编辑器、证书,缓存,事件)、鉴权和审计,一些常见的错误在表单检验时可以排除掉,可能命令行角度来讲,上限更高,但是从公司层面(大中厂应该都有自研的,或魔改 rancher ),Web 拉低 k8s 入门的门槛,尽量使得每个人的经验内化成代码(比如批量下线 pod 的 Shell 脚本变成 client-go 代码,kube config 拉取改成点击按钮,提供批量 pod 执行临时脚本的能力,提供类似 postman 的界面用于调试微服务接口,跟已有的 CI/CD ,工单,监控系统集成联动),这样长期来说操作风险更低,服务更稳定。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     985 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 22:32 PVG 06:32 LAX 15:32 JFK 18:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86