公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
Kubernetes
生态在很多企业广泛应用的当下,相信很多运维和开发人员都会同时管理和维护多个 Kubernetes
集群,比如:开发环境、测试环境、预发布环境、生产环境等等。
为了方便管理多个环境的集群,通常都是在本地环境通过 Kubernetes
的客户端工具 kubectl
来管理多个 Kubernetes
集群的。这时你就需要用到各个集群的 kubeconfig
文件,你是不是首先想到的就是手动将多个 kubeconfig
配置文件合并为一个,然后通过 kubectx
或 kubie
这样的工具来快速切换上下文环境(context)来达到多集群环境的管理呢?虽然手动合并 kubeconfig
配置文件的方法是可行的,但是集群环境较多时或者集群环境经常变更时,这样的方法就显得很麻烦了。
今天,我们就给大家介绍几种更方便更快捷的 Kubernetes
多集群管理方法。首先我们来看看官方提供的实现方式:
官方提供的解决方法
官方目前提供了配置环境变量和通过命令行参数显示指定两种方法来解决这个问题。
配置环境变量指定多个集群的 kubeconfig 文件
# 配置 Kubernetes 多集群,注意使用 : 隔开
export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config:$HOME/.kube/mike-local-kubernetes.yaml:$HOME/.kube/dev-kubernetes.yaml:$HOME/.kube/test-kubernetes.yaml:$HOME/.kube/prod-kubernetes.yaml:$HOME/.kube/okteto-kube.yaml
通过命令行参数显示指定不同集群的 kubeconfig 文件
# 切换到本地集群
kubectl get pod --kubeconfig=$HOME/.kube/mike-local-kubernetes.yaml
# 切换到开发集群
kubectl get pod --kubeconfig=$HOME/.kube/dev-kubernetes.yaml
# 切换到测试集群
kubectl get pod --kubeconfig=$HOME/.kube/test-kubernetes.yaml
# 切换到生产集群
kubectl get pod --kubeconfig=$HOME/.kube/prod-kubernetes.yaml
虽然官方提供的方法,能实现多集群管理。但是不断来回切换 kubeconfig
配置文件或者经常手动编辑环境变量来增减多个集群的配置文件,显然还是比较麻烦的。
接下来,给大家介绍的就是本文的重点,这是一种更优雅的解决方法。
通过自动合并工具实现多集群 Kubeconfig 配置文件管理
既然手动合并太过麻烦和复杂,有没有自动合并工具呢?你别说,还真有且不此一款。下面我们来介绍下如何使用这几款好用的自动合并工具。
KubeCM
KubeCM
是一款使用 Go
语言开发的 KubeConfig
管理工具,功能非常的强大。它不但能实现多个 KubeConfig
文件的自动合并,还能很方便的管理多个 Kubernetes
集群环境,比如:增加、删除、重命名不同集群环境等。