当前位置: 首页 > 软件库 > 云计算 > 云原生 >

kubectx

授权协议 Apache-2.0 License
开发语言 Google Go
所属分类 云计算、 云原生
软件类型 开源软件
地区 不详
投 递 者 邓建柏
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

kubectx + kubens: Power tools for kubectl

Go implementation (CI)

This repository provides both kubectx and kubens tools.Install →

�� �� NEWS: With v0.9.0 kubectx and kubens are now rewritten in Go.(Don't worry, our lovely bash versions are still available!) Please testthis new Go binaries by downloading them fromReleases →

kubectx helps you switch between clusters back and forth:

kubens helps you switch between Kubernetes namespaces smoothly:

kubectx(1)

kubectx is a utility to manage and switch between kubectl(1) contexts.

USAGE:
  kubectx                   : list the contexts
  kubectx <NAME>            : switch to context <NAME>
  kubectx -                 : switch to the previous context
  kubectx -c, --current     : show the current context name
  kubectx <NEW_NAME>=<NAME> : rename context <NAME> to <NEW_NAME>
  kubectx <NEW_NAME>=.      : rename current-context to <NEW_NAME>
  kubectx -d <NAME>         : delete context <NAME> ('.' for current-context)
                              (this command won't delete the user/cluster entry
                              that is used by the context)
  kubectx -u, --unset       : unset the current context

Usage

$ kubectx minikube
Switched to context "minikube".

$ kubectx -
Switched to context "oregon".

$ kubectx -
Switched to context "minikube".

$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context "dublin" set.
Aliased "gke_ahmetb_europe-west1-b_dublin" as "dublin".

kubectx supports Tab completion on bash/zsh/fish shells to help withlong context names. You don't have to remember full context names anymore.


kubens(1)

kubens is a utility to switch between Kubernetes namespaces.

USAGE:
  kubens                    : list the namespaces
  kubens <NAME>             : change the active namespace
  kubens -                  : switch to the previous namespace
  kubens -c, --current      : show the current namespace

Usage

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

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

kubens also supports Tab completion on bash/zsh/fish shells.


Installation

�� �� NEWS: With v0.9.0 kubectx and kubens are now rewritten in Go.(Don't worry, our lovely bash versions are still available!) Please testthis new Go binaries by downloading them fromReleases →

There are several installation options:

  • As kubectl plugins (macOS/Linux)
  • macOS
    • Homebrew (recommended)
    • MacPorts
  • Linux
    • Debian
    • Arch Linux
    • Homebrew
    • Manual installation

Kubectl Plugins (macOS and Linux)

You can install and use Krew kubectlplugin manager to get kubectx and kubens. NOTE: This will not installshell completion scripts, if you want those, choose another installation methodbelow.

kubectl krew install ctx
kubectl krew install ns

After installing, the tools will be available as kubectl ctx and kubectl ns.

macOS

Homebrew

�� If you use Homebrew you can install like this:

brew install kubectx

This command will set up bash/zsh/fish completion scripts automatically.

  • If you like to add context/namespace info to your shell prompt ($PS1),I recommend trying out kube-ps1.

MacPorts

If you use MacPorts you can install like this:

sudo port install kubectx

Linux

Debian

sudo apt install kubectx

Newer versions might be available on repos likeDebian Buster (testing),Sid (unstable)(if you are unfamiliar with the Debian release process and how to enabletesting/unstable repos, check out theDebian Wiki):

Arch Linux

Available as official Arch Linux package. Install it via:

sudo pacman -S kubectx

Homebrew

�� If you use Homebrew you can install like this:

brew install kubectx

This command will set up bash/zsh/fish completion scripts automatically.

  • If you like to add context/namespace info to your shell prompt ($PS1),I recommend trying out kube-ps1.

Manual

Since kubectx/kubens are written in Bash, you should be able to installthem to any POSIX environment that has Bash installed.

  • Download the kubectx, and kubens scripts.
  • Either:
    • save them all to somewhere in your PATH,
    • or save them to a directory, then create symlinks to kubectx/kubens fromsomewhere in your PATH, like /usr/local/bin
  • Make kubectx and kubens executable (chmod +x ...)
  • Install bash/zsh/fish completion scripts.
    • For zsh:The completion scripts have to be in a path that belongs to $fpath. Either link or copy them to an existing folder.If using oh-my-zsh you can do as follows:
      mkdir -p ~/.oh-my-zsh/completions
      chmod -R 755 ~/.oh-my-zsh/completions
      ln -s /opt/kubectx/completion/kubectx.zsh ~/.oh-my-zsh/completions/_kubectx.zsh
      ln -s /opt/kubectx/completion/kubens.zsh ~/.oh-my-zsh/completions/_kubens.zsh
      Note that the leading underscore seems to be a convention. If completion doesn't work, add autoload -U compinit && compinit to your .zshrc (similar to zsh-completions).If 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 error, calling compaudit might help.
    • For 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 << FOE >> ~/.bashrc
      
      
      #kubectx and kubens
      export PATH=~/.kubectx:\$PATH
      FOE
    • For 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/

Example installation steps:

sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

Interactive mode

If you want kubectx and kubens commands to present you an interactive menuwith fuzzy searching, you just need to installfzf in your PATH.

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 using Unix composability:

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 theNO_COLOR environment variable.


Users

What are others saying about kubectx?
“Thank you for kubectx & kubens - I use them all the time & have them in my k8s toolset to maintain happiness :) ”@pbouwer
“I can't imagine working without kubectx and especially kubens anymore. It's pure gold.”@timoreimann
“I'm liking kubectx from @ahmetb, makes it super-easy to switch #Kubernetes contexts [...]”@lizrice
“Also using it on a daily basis. This and my zsh config that shows me the current k8s context �� @puja108
“Lately I've found myself using the kubens command more than kubectx. Both very useful though :-)”@stuartleeks
“yeah kubens rocks!”@embano1
“Special thanks to Ahmet Alp Balkan for creating kubectx, kubens, and kubectl aliases, as these tools made my life better.”@strebeld
❤️ this shell script @ahmetb wrote to help make switching between kubectl config contexts a breeze.”@briandanowski

If you liked kubectx, you may like my kubectl-aliases project, too.


Disclaimer: This is not an official Google product.

Stargazers over time

  • kubectx 帮助您在集群之间来回切换 install 由于 kubectx/kubens 是用 Bash 编写的,因此您应该能够将它们安装到任何安装了 Bash 的 POSIX 环境中。 git clone https://github.com/ahmetb/kubectx /opt/kubectx 确保 kubectx 脚本是可执行的 [root@myk8s1 ~] ls /opt/kub

  • kubectx是快速管理命名空间的指令 sudo git clone https://github.com/ahmetb/kubectx /usr/local/kubectx sudo ln -s /usr/local/kubectx/kubectx /usr/local/bin/kubectx sudo ln -s /usr/local/kubectx/kubens /usr/local/bin

  • 微信公众号:运维开发故事,作者:double冬 在使用kubectl操作kubernetes集群的过程中,可能会遇到需要操作不同集群的问题,例如本地的minikube集群和线上的部署集群,或是线上的测试集群和线上的部署集群,如果集群之间切换不频繁,也可以使用笨办法,比如准备多个config文件在/.kube文件夹下,要切换的时候就改config的名字,或者使用别名,不过对于需要频繁切换操作集群的人

  • 介绍 kubectx is a tool to switch between contexts (clusters) on kubectl faster. kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily. 源码 使用 # switch to anoter

  • I want to introduce you two useful tools for kubernetes development, github link with detail. Note: this is not an official Google product. kubectx kubectx helps you switch between clusters back and f

  • Kubernetes 通过kubectx/kubens快速切换context和namespace 1,安装(Oracle Linux) git clone https://github.com/ahmetb/kubectx sudo cp kubectx/kube* /usr/local/bin/ 2, 使用kubectx快速切换context 2-1,列出全部context kubectx 结

相关阅读

相关文章

相关问答

相关文档