验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

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

阅读:876 来源:乙速云 作者:代码code

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
      )

      添加 krewPATH: 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
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>