kubectx

ahmetbApache-2.0活跃维护

在多个 Kubernetes 集群和命名空间之间快速切换的命令行工具,省去反复敲长串 kubectl config 命令的麻烦。

Faster way to switch between clusters and namespaces in kubectl

v0.11.0发布于 2026-03-27 03:13 UTC20,089star +4 / 7 天1,387fork同步于 2026-11-10 17:24 UTC

怎么上手

由 README 提炼,执行前请确认
brew install kubectx
硬件要求按 README 说明

README 未说明,纯命令行工具,无 GPU 或显存要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在 kubectl 里快速切换集群 context 和 namespace 的命令行小工具

在多个 Kubernetes 集群和命名空间之间快速切换的命令行工具,省去反复敲长串 kubectl config 命令的麻烦。

核心能力

  • 用 kubectx 一条命令切换 kubeconfig 中的集群 context
  • 用 kubens 切换当前 namespace 并写回 kubectl 配置
  • 支持 kubectx - 和 kubens - 回到上一个 context/namespace
  • 可启动只含单个 context 的隔离 shell 或只读 shell
  • 安装 fzf 后支持交互式模糊搜索,bash/zsh/fish 支持 Tab 补全

容易踩的坑

交互式模糊搜索需自行在 PATH 中安装 fzf,否则退回普通行为;装了 fzf 想关掉需设 KUBECTX_IGNORE_FZF=1;Tab 补全脚本需按 shell 手动配置到 fpath 或 completions 目录

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.11.0
  1. v0.11.0最新正式版2026-03-27 · 2026-03-27 03:13 UTC

    Changelog

  2. v0.10.22026-03-23 · 2026-03-23 23:45 UTC
    查看更新说明

    Changelog

    • 2cb7500e341cd83db0c57b1a6901bd37c4a2f267 Support interactive fzf selection for kubectx -s with no arguments
    • e4727d38f8894e11848ecf823eb24d00e580d477 Fix relative path resolution in exec credential plugins (#490)
    • eb621b4406b7e08c63c0ffa546b67083d251ca0b Support multiple kubeconfig files (KUBECONFIG=file1:file2:file3) (#489)
  3. v0.10.02026-03-20 · 2026-03-20 20:30 UTC
    查看更新说明

    Changelog

    More features in the Go implementation of kubectx/kubens! (It's been 2.5 years since the last release.)

    Features

    • kubectx --shell/-s <CONTEXT> spins up an isolated shell where only that context exists! (#461)
    • kubens -f <NAMESPACE> skips checking if namespace exists and switches into it (#416) @idsulik
    • kubens -u/--unset unsets the current namespace (#440) @jmischler72
    • kubectx and kubens now respect $XDG_CACHE_HOME (#478)

    Bug Fixes

    • kubectx: skip launching fzf when no contexts exist in kubeconfig (#480)
    • kubens: skip launching fzf when no contexts exist in kubeconfig (#481)

    Full Changelog: https://github.com/ahmetb/kubectx/compare/v0.9.5...v0.10.0

  4. v0.9.52023-07-14 · 2023-07-14 03:24 UTC
    查看更新说明

    Changelog

    • 92e5b5f Release v0.9.5
  5. v0.9.42021-07-06 · 2021-07-06 22:32 UTC
    查看更新说明

    Changelog

    979012e Release v0.9.4

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    kubectx + kubens: Power tools for kubectl

    Latest GitHub release GitHub stars Homebrew downloads Go implementation (CI)

    This repository provides both kubectx and kubens tools. Install →

    What are kubectx and kubens?

    kubectx is a tool to switch between contexts (clusters) on kubectl faster, and launch readonly shells for each context. kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily.

    Here's a kubectx demo: kubectx demo GIF

    ...and here's a kubens demo: kubens demo GIF

    Usage

    kubectx

    Switch to another cluster that's in kubeconfig:

    $ kubectx minikube
    Switched to context "minikube".
    

    Switch back to previous cluster:

    $ kubectx -
    Switched to context "oregon".
    

    Start an isolated shell that only has a single context:

    $ kubectx -s minikube
    

    Start a read-only shell where write operations are blocked:

    $ kubectx -r minikube
    

    Rename context:

    $ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
    Context "gke_ahmetb_europe-west1-b_dublin" renamed to "dublin".
    
    kubens

    Change the active namespace on kubectl:

    $ kubens kube-system
    Context "test" set.
    Active namespace is "kube-system".
    

    Go back to the previous namespace:

    $ kubens -
    Context "test" set.
    Active namespace is "default".
    

    Change the active namespace even if it doesn't exist:

    $ kubens namespace-404 -f
    Context "test" set.
    Active namespace is "namespace-404".
    

    If you have fzf installed, you can also interactively select a context or cluster, or fuzzy-search by typing a few characters. To learn more, read interactive mode →

    Both kubectx and kubens support Tab completion on bash/zsh/fish shells to help with long context names. You don't have to remember full context names anymore.


    Installation

    Package managerCommand
    Homebrew (macOS & Linux)brew install kubectx
    MacPorts (macOS)sudo port install kubectx
    apt (Debian/Ubuntu)sudo apt install kubectx
    pacman (Arch Linux)sudo pacman -S kubectx
    Chocolatey (Windows)choco install kubens kubectx
    Scoop (Windows)scoop bucket add main && scoop install main/kubens main/kubectx
    winget (Windows)winget install --id ahmetb.kubectx && winget install --id ahmetb.kubens
    Krew (kubectl plugin)kubectl krew install ctx && kubectl krew install ns

    Alternatively, download binaries from the Releases page → and add them to somewhere in your PATH.

    zsh (with antibody)

    Add this line to your Plugins File (e.g. ~/.zsh_plugins.txt):

    ahmetb/kubectx path:completion kind:fpath
    

    Depending on your setup, you might or might not need to call compinit or autoload -U compinit && compinit in your ~/.zshrc after you load the Plugins file. If you use oh-my-zsh, load the completions before you load oh-my-zsh because oh-my-zsh will call compinit.

    zsh (plain)

    The completion scripts have to be in a path that belongs to $fpath. Either link or copy them to an existing folder.

    Example with oh-my-zsh:

    mkdir -p ~/.oh-my-zsh/custom/completions
    chmod -R 755 ~/.oh-my-zsh/custom/completions
    ln -s /opt/kubectx/completion/_kubectx.zsh ~/.oh-my-zsh/custom/completions/_kubectx.zsh
    ln -s /opt/kubectx/completion/_kubens.zsh ~/.oh-my-zsh/custom/completions/_kubens.zsh
    echo "fpath=($ZSH/custom/completions $fpath)" >> ~/.zshrc
    

    If completion doesn't work, add autoload -U compinit && compinit to your .zshrc (similar to zsh-completions).

    If you are not using oh-my-zsh, you could link to /usr/share/zsh/functions/Completion (might require sudo), depending on the $fpath of your zsh installation.

    In case of errors, calling compaudit might help.

    bash
    git clone https://github.com/ahmetb/kubectx.git ~/.kubectx
    COMPDIR=$(pkg-config --variable=completionsdir bash-completion)
    ln -sf ~/.kubectx/completion/kubens.bash $COMPDIR/kubens
    ln -sf ~/.kubectx/completion/kubectx.bash $COMPDIR/kubectx
    cat << EOF >> ~/.bashrc
    
    
    #kubectx and kubens
    export PATH=~/.kubectx:\$PATH
    EOF
    
    fish
    mkdir -p ~/.config/fish/completions
    ln -s /opt/kubectx/completion/kubectx.fish ~/.config/fish/completions/
    ln -s /opt/kubectx/completion/kubens.fish ~/.config/fish/completions/
    

    [!NOTE] Tip: Show context/namespace in your shell prompt with oh-my-posh or simply with kube-ps1.


    Interactive mode

    If you want kubectx and kubens commands to present you an interactive menu with fuzzy searching, you just need to install fzf in your $PATH.

    kubectx interactive search with fzf

    Caveats:

    • If you have fzf installed, but want to opt out of using this feature, set the environment variable KUBECTX_IGNORE_FZF=1.
    • If you want to keep fzf interactive mode but need the default behavior of the command, you can do it by piping the output to another command (e.g. kubectx | cat ).

    Customizing colors

    If you like to customize the colors indicating the current namespace or context, set the environment variables KUBECTX_CURRENT_FGCOLOR and KUBECTX_CURRENT_BGCOLOR (refer color codes here):

    export KUBECTX_CURRENT_FGCOLOR=$(tput setaf 6) # blue text
    export KUBECTX_CURRENT_BGCOLOR=$(tput setab 7) # white background
    

    Colors in the output can be disabled by setting the NO_COLOR environment variable.


    If you liked kubectx, you may like my kubectl-aliases project, too. I recommend pairing kubectx and kubens with fzf and kube-ps1.

    Stargazers over time

    Stargazers over time Google Analytics