这篇文章主要介绍“K8S实用工具之怎么合并多个kubeconfig”,在日常操作中,相信很多人在K8S实用工具之怎么合并多个kubeconfig问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”K8S实用工具之怎么合并多个kubeconfig”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
解决方案
方案一:KUBECONFIG 环境变量指向多个文件
通过在 KUBECONFIG 环境变量中指定多个文件,可以临时将 KUBECONFIG 文件组合在一起,并在
kubectl
中使用。如下,那么是在 kubeconfig 是在内存中做的合并:
export KUBECONFIG=~/.kube/config:~/anotherconfig
方案二:flatten
直接如下:
export KUBECONFIG=~/.kube/config:~/anotherconfig
kubectl config view --flatten
如果需要,还可以管道输出到另外一个新文件。
-
:将生成的 kubeconfig 文件扁平化为自包含的输出(用于创建可移植的 kubeconfig 文件)--flatten
方案三:kubectl 插件 konfig
kubectl
有个 krew
插件包管理器,可以通过 krew
安装 konfig
实用插件来管理 kubeconfig。实用工具:krew
什么是
krew
:Krew 是
kubectl
命令行工具的插件管理器。Krew 可以帮助你:
发现 kubectl 插件
将它们安装到您的机器上
并保持安装的插件是最新的
目前在
krew
上有 164个 kubectl 插件。Krew 可以在所有主要平台上工作,比如 macOS、Linux和Windows。
Krew 还可以帮助
kubectl
插件开发者: 你可以很容易地在多个平台上打包和发布你的插件,并且可以通过 krew
集中的插件库来发现它们。安装
Krew 本身是一款通过 Krew 安装和更新的 kubectl 插件(是的,krew 自托管)。
Bash 或 ZSH shell 安装:
如果需要用代理,请先配置 proxy
确认已安装
git
下载并安装
krew
:(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/(arm)(64)?.*/12/' -e 's/aarch74$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
添加
krew
到 PATH
: export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
并重启 shell运行
kubectl krew
来验证要看完整的插件列表,运行:
kubectl krew search
实用工具:konfig
安装:
kubectl krew install konfig
krew
插件 konfig
可以帮助你管理 ~/.kube/config
。使用
konfig
插件的语法如下:kubectl konfig import -s new.yaml