关于运维:K8S-实用工具之一-如何合并多个-kubeconfig

1次阅读

共计 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 装置:

  1. 如果须要用代理,请先配置 proxy,操作指南:Advanced Configuration · Krew
  2. 确认已装置 git
  3. 下载并装置 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
    )
  4. 增加 krewPATH: export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH" 并重启 shell
  5. 运行 kubectl krew 来验证
  6. 要看残缺的插件列表,运行:kubectl krew search

实用工具:konfig

装置:kubectl krew install konfig

krew 插件 konfig 能够帮忙你治理 ~/.kube/config

应用 konfig 插件的语法如下:

kubectl konfig import -s new.yaml

总结

明天分享了 2 个实用插件:

  1. krewkubectl 插件管理器
  2. konfig:kubeconfig 配置管理插件

🎉🎉🎉

三人行, 必有我师; 常识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

正文完
 0