V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
corvofeng
V2EX  ›  程序员

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

  •  
  •   corvofeng · 14 天前 · 1083 次点击

    最近我开发了一款轻量级的 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  
       14 天前
    已 star😀
    hongyexiaoqing
        2
    hongyexiaoqing  
       14 天前
    没感觉有什么提高效率的
    DefoliationM
        3
    DefoliationM  
       14 天前   ❤️ 1
    同楼上,感觉不如 k9s,反而还要多学一套命令。
    GeekGao
        4
    GeekGao  
       14 天前
    没有学习它的欲望,不如使用 Lens ,点鼠标就能搞定大部分事
    wunonglin
        5
    wunonglin  
       14 天前 via iPhone   ❤️ 1
    lens 好用很多
    corvofeng
        6
    corvofeng  
    OP
       14 天前
    @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  
       14 天前 via iPhone
    Web 和终端又不会冲突,Web 也可以通过 ws 实现类终端的体验。而且统一的界面和后端也有利于集群管管理( yaml 编辑器、证书,缓存,事件)、鉴权和审计,一些常见的错误在表单检验时可以排除掉,可能命令行角度来讲,上限更高,但是从公司层面(大中厂应该都有自研的,或魔改 rancher ),Web 拉低 k8s 入门的门槛,尽量使得每个人的经验内化成代码(比如批量下线 pod 的 Shell 脚本变成 client-go 代码,kube config 拉取改成点击按钮,提供批量 pod 执行临时脚本的能力,提供类似 postman 的界面用于调试微服务接口,跟已有的 CI/CD ,工单,监控系统集成联动),这样长期来说操作风险更低,服务更稳定。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.