K8S 实用工具之一 - 如何合并多个 kubeconfig? - 东风微鸣
source link: https://www.cnblogs.com/east4ming/p/17174507.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
📜 引言:
- 磨刀不误砍柴工
- 工欲善其事必先利其器
K8S 集群规模,有的公司倾向于少量大规模 K8S 集群,也有的公司会倾向于大量小规模的 K8S 集群。
如果是第二种情况,是否有一个简单的 kubectl
命令来获取一个 kubeconfig 文件并将其合并到 ~/.kube/config
文件作为一个额外的上 context?
🔥 提示:
Kubeconfig 文件会包含 Kubernetes 集群的以下信息:
- 上下文(context)
有以下解决方案:
方案一:KUBECONFIG
环境变量指向多个文件
通过在 KUBECONFIG 环境变量中指定多个文件,可以临时将 KUBECONFIG 文件组合在一起,并在 kubectl
中使用。
如下,那么是在 kubeconfig 是在内存中做的合并:
export KUBECONFIG=~/.kube/config:~/anotherconfig
方案二:flatten
直接如下:
export KUBECONFIG=~/.kube/config:~/anotherconfig
kubectl config view --flatten
如果需要,还可以管道输出到另外一个新文件。
--flatten
:将生成的 kubeconfig 文件扁平化为自包含的输出(用于创建可移植的
kubeconfig 文件)
方案三: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,操作指南:Advanced Configuration · Krew
-
确认已安装
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\)\?.*/\1\2/' -e 's/aarch64$/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
今天分享了 2 个实用插件:
- krew:
kubectl
插件管理器 - konfig:kubeconfig 配置管理插件
🎉🎉🎉
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK