在多个集群环境中工作还是有挑战的。执行命令发现选择错了集群的情况很容易发生。如果你每天多次切换集群,会很方便快速。但是每次你想要切换集群时要执行kubectl config use-context
速度
如果你有多个k8s集群可选择,你切换k8s上下文有多快?你还记得所有的集群上下文?
灵活性
工具是否具备高级特性比如支持多config文件?
安全:
可以同时打开多个终端,每个终端都运行在自己集群上下文中?在一个终端切换集群上下文会影响其他终端,导致出错概率更大?
根据上面几个评估指标,下面我们来看看以下3个工具:
Kubectx
Kubectx是最流行的切换k8s集群工具,但是它功能比较少!可以显示你所有的kubeconfig列表供你选择。就这些! kubectx-demo
安装Kubectx
Kubectx 适用于所有主要平台,Linux、Windows 和 macOS。它可以使用helm 这样的本地包管理器来安装。你还可以使用 kubectl krew install ctx 将其安装为 Kubectl 插件。更多细节参考该链接[https://github.com/ahmetb/kubectx#installation]。
Kubectx缺点
更改 Kubernetes上下文时,kubectx 会为所有终端会话全局更改,因此多个终端不能独立管理不同的集群。
Kubie
Kubie 是kubectx 的替代品。它快速、灵活,并且不会影响你的Kubeconfig。 kubie
使用kubie ctx切换当前shell的Kubernetes 上下文。
kubie exec
可以管理多个kubeconfig文件并通过修改 ~/.kube/kubie.yaml 文件中的设置来自定义 Kubie 的行为。
安装Kubie
Kubie安装包适用于macOS 和Linux,不适用于 Windows。详细内容参考该链接[https://github.com/sbstp/kubie#installation]。
Kubeswitch
Kubeswitch具有Kubectx 和Kubie 的核心功能。它是明显的赢家,也是我们将在未来使用的工具。 kubeswitch
使用Hooks(类似于 Git Hooks),可以在你选择的时间自动运行可执行文件/内联 shell 命令。
通过启用搜索索引功能,可以在数百个Kubernetes上下文中进行闪电般的快速搜索。这会索引跨多个本地和远程系统的所有上下文。请注意,你必须手动刷新索引以防止结果过时。
其他功能
更改历史记录 - 你之前切换到的所有上下文的列表。
上下文别名 - 给你的上下文一个别名,以帮助快速访问。
终端隔离——从不同的终端窗口访问多个集群。
安装Kubeswitch
如果你使用的不是 MacOS,从源代码或二进制文件下载和安装可能会有点复杂。但这绝对值得你花时间。详细说明参考这个链接[https://github.com/danielfoehrKn/kubeswitch/blob/master/docs/installation.md]。
kubectx vs kubie vs kubeswitch
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !