Project Icon

kubie

Kubernetes 上下文和命名空间管理工具 Kubie

Kubie 是一个 Kubernetes 上下文和命名空间管理工具,支持在独立 shell 环境中切换上下文和命名空间。它可以加载多个配置文件,执行命令,检查配置文件,简化了 Kubernetes 环境管理。Kubie 为开发者提供了灵活高效的方式来处理多个 Kubernetes 集群和命名空间。

Kubie

kubiekubectxkubensk on 提示修改脚本的替代品。它提供了上下文切换、命名空间切换和提示修改功能,使每个 shell 独立于其他 shell。它还支持拆分配置文件,这意味着它可以从多个文件加载 Kubernetes 上下文。你可以配置 kubie 查找上下文的路径,详见设置部分。

Kubie 还有其他不错的功能,比如 kubie exec,它允许你在某个上下文和命名空间中执行命令,而无需生成一个 shell;以及 kubie lint,它可以扫描你的 k8s 配置文件是否存在问题并告知你。

感谢 @ahermant 设计的精美 logo!

安装

二进制文件

你可以在 GitHub 发布页面 下载 Linux 或 OS X 的二进制文件。你可以使用 curlwget 下载。别忘了用 chmod +x 给文件添加可执行权限!

Cargo

你可以使用 cargo 和 crates.io 从源代码构建 kubie。如果你没有安装 Rust 编译器,请访问 rustup.rs 获取一个。然后你可以运行 cargo install kubie,kubie 将从 crates.io 下载并构建。

Homebrew

你可以通过运行 brew install kubie 从 Homebrew 安装 kubie

MacPorts

你也可以通过运行 sudo port install kubieMacPorts 安装 kubie

Nix

有一个由 @illiusdope 维护的 kubie Nix 包可供安装。

Arch Linux

kubie 可在 extra 仓库 中获得,可以通过运行 pacman -S kubie 安装。

自动补全

Bash

如果你想要 kubie ctxkubie nskubie exec 的自动补全功能,请安装此脚本:

sudo cp ./completion/kubie.bash /etc/bash_completion.d/kubie

然后启动新的 shell 或源引用复制的文件:

. /etc/bash_completion.d/kubie

Fish

通过复制安装补全脚本 kubie.fish,例如:

cp completion/kubie.fish ~/.config/fish/completions/

然后重新打开 fish 或源引用该文件。

使用

使用 kubie ctxkubie ns 时将提供可选择的菜单。


  • kubie ctx 显示可选择的上下文菜单
  • kubie ctx <context> 将当前 shell 切换到指定的上下文(如果不是 kubie shell,则生成一个 shell)
  • kubie ctx - 切换回上一个上下文
  • kubie ctx <context> -r 在给定的上下文中生成一个递归 shell
  • kubie ctx <context> -n <namespace> 在给定的上下文和命名空间中生成一个 shell
  • kubie ns 显示可选择的命名空间菜单
  • kubie ns <namespace> 将当前 shell 切换到指定的命名空间
  • kubie ns - 切换回上一个命名空间
  • kubie ns <namespace> -r 在给定的命名空间中生成一个递归 shell
  • kubie exec <context> <namespace> <cmd> <args>... 在给定的上下文和命名空间中执行命令
  • kubie exec <wildcard> <namespace> <cmd> <args>... 在通配符匹配的所有上下文和给定的命名空间中执行命令
  • kubie exec <wildcard> <namespace> -e <cmd> <args>... 在通配符匹配的所有上下文和给定的命名空间中执行命令,但如果任何执行的命令返回非零退出代码,则提前失败
  • kubie export <context> <namespace> 打印上下文和命名空间的独立配置文件路径
  • kubie edit 显示可编辑的上下文菜单
  • kubie edit <context> 编辑包含此上下文的文件
  • kubie edit-config 编辑 kubie 自己的配置文件
  • kubie lint 检查 k8s 配置文件是否存在问题
  • kubie info ctx 打印当前上下文的名称
  • kubie info ns 打印当前命名空间的名称
  • kubie info depth 打印递归上下文的深度
  • kubie update 检查最新的 kubie 版本并在需要时更新本地安装

设置

你可以通过 ~/.kube/kubie.yaml 文件自定义 kubie 的行为。以下是可用的设置及其默认值。

# 强制 kubie 使用特定的 shell,如果未设置则检测当前使用的 shell。
# 可能的值:bash、dash、fish、xonsh、zsh
# 默认:未设置
shell: bash

# 配置查找 kubernetes 配置文件的位置。
configs:

    # 包含这些通配符。
    # 默认:下面列出的值。
    include:
        - ~/.kube/config
        - ~/.kube/*.yml
        - ~/.kube/*.yaml
        - ~/.kube/configs/*.yml
        - ~/.kube/configs/*.yaml
        - ~/.kube/kubie/*.yml
        - ~/.kube/kubie/*.yaml

    # 排除这些通配符。
    # 默认:下面列出的值。
    # 注意:kubie 自己的配置文件始终被排除。
    exclude:
        - ~/.kube/kubie.yaml

# 提示设置。
prompt:
    # 在 kubie shell 中禁用 kubie 的自定义提示。当你已经有一个显示 kubernetes 信息的提示时,这很有用。
    # 默认:false
    disable: true

    # 使用递归上下文时,当深度大于 1 时显示深度。
    # 默认:true
    show_depth: true

    # 使用 zsh 时,使用 RPS1 在右侧显示上下文和命名空间。
    # 默认:false
    zsh_use_rps1: false

    # 使用 fish 时,在右侧显示上下文和命名空间。
    # 默认:false
    fish_use_rprompt: false

    # 使用 xonsh 时,在右侧显示上下文和命名空间。
    # 默认:false
    xonsh_use_right_prompt: false

# 行为
behavior:
    # 切换命名空间时,使用 `kubectl get namespaces` 确保命名空间存在。
    # 如果你没有列出命名空间的权限,请禁用此功能。
    # 默认:true
    validate_namespaces: true

    # 启用或禁用运行 `kubie exec` 时打印 'CONTEXT => ...' 头部。
    # 有效值:
    #   auto:   仅当 stdout 是 TTY 时打印上下文头部。通过管道/重定向 kubie 输出会自动禁用上下文头部。
    #   always: 始终打印上下文头部,即使 stdout 不是 TTY。
    #   never:  从不打印上下文头部。
    # 默认:auto
    print_context_in_exec: auto

# 可选的开始和停止钩子
hooks:
    # 启动 CTX 时运行的命令钩子。  
    # 这个例子重新标记你的终端窗口
    # 默认:无
    start_ctx: >
        echo -en "\033]1; `kubie info ctx`|`kubie info ns` \007"

    # 停止 CTX 时运行的命令钩子
    # 这个例子将终端设置回 shell 名称
    # 默认:无
    stop_ctx: >
        echo -en "\033]1; $SHELL \007"

对发行版维护者

0.19.0 版本开始,自更新功能是作为一个特性提供的。你可以使用 cargo build --release --no-default-features 来生成一个没有自更新功能的二进制文件。对于更新,让用户依赖发行版的包管理器可能会更好。生成的二进制文件也会小很多,因为它的依赖更少。

未来计划

  • 与 vault 集成,自动从 vault 服务器下载 k8s 配置
  • 导入/编辑配置
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号