美文网首页
K8S 实用工具之一 - 如何合并多个 kubeconfig?

K8S 实用工具之一 - 如何合并多个 kubeconfig?

作者: 东风微鸣 | 来源:发表于2023-03-02 09:46 被阅读0次

    开篇

    📜 引言

    • 磨刀不误砍柴工
    • 工欲善其事必先利其器

    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 编写.

    相关文章

      网友评论

          本文标题:K8S 实用工具之一 - 如何合并多个 kubeconfig?

          本文链接:https://www.haomeiwen.com/subject/xxkjldtx.html