K8S实用工具之怎么合并多个kubeconfig

作者:有用网 阅读量:233 发布时间:2023-11-11
关键字

这篇文章主要介绍“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

    如果需要,还可以管道输出到另外一个新文件。

    • --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

    确认已安装

    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

    #发表评论
    提交评论