共计 1614 个字符,预计需要花费 5 分钟才能阅读完成。
开篇
📜 引言 :
- 磨刀不误砍柴工
- 工欲善其事必先利其器
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 编写.