有时候往往需要和多个Kubernetes集群交互,我之前一直是每个集群一个config文件,然后通过cp ~/.kube/config.xxxx ~/.kube/config
这样来切换🤦♂️。
其实通过Kubernetes的Context,就不用这么麻烦了。不过按照文档操作有点繁琐,其实自己编辑~/.kube/config
就行了,不过记得先备份一下。就是把其他集群的cluster、user、context分别添加一份到~/.kube/config
,注意改下名字之类。
之后就可以这样kubectl config use-context minikube
来切换context为minikube了。执行kubectl config current-context
可以显示当前的context。但是这个命令还是太长了,不友好。可以安装kubectx,支持交互式操作(配合fzf)来选择并切换context和namespace。在macOS只要执行brew install kubectx
就能安装了。
下面是执行kubectx
的效果:
同样,执行kubens
可以列出当前context指定集群的可用namespace,然后通过方向键选择。之后执行kubectl get pod
就不用指定--context=xxx -n=yyy
来操作了。
更进一步,由于kubectl支持插件机制,我们只要执行:
1 | ln -s /usr/local/bin/kubectx /usr/local/bin/kubectl-ctx |
然后只要运行kubectl ctx
和kubectl ns
就行了,不需要再敲kubectx和kubens。