云原生之深入解析如何合并多个kubeconfig文件

  • 项目通常有多个 k8s 集群环境,dev、testing、staging、prod,kubetcl 在多个环境中切换,操作集群 Pod 等资源对象,前提条件是将这三个环境的配置信息都写到本地机的 $HOME/.kube/config 文件中。

  • 默认情况下kubectl会查找$HOME/.kube目录中命名为config的文件。那么,如何将多个 kubeconfig 文件合并为一个呢?

    cp HOME/.kube/config HOME/.kube/config-backup

  • 设置 KUBECONFIG 环境变量,KUBECONFIG环境变量是配置文件的路径列表,例如/path/cluster1:/path/cluster2:/path/cluster3:

    export KUBECONFIG=$HOME/.kube/config:/path/cluster1:/path/cluster2

  • 如果当前目录下有很多 kubeconfig 文件,可以使用以下命令快速设置KUBECONFIG 环境变量:

    cd HOME/.kube
    ls HOME/.kube
    config-dev config-testing config-staging config-prod

    export KUBECONFIG=HOME/.kube/config:(find HOME/.kube -type f -maxdepth 1 | grep config | tr '\n' ':')

  • 将所有 kubeconfig 文件合并为一个:

    kubectl config view --flatten > all-in-one-kubeconfig.yaml

  • 验证它是否有效,显示在 kubeconfig 中定义的所有集群:

    kubectl config get-contexts --kubeconfig=$HOME/.kube/all-in-one-kubeconfig.yaml

  • 用新合并的配置文件替换旧配置文件:

    mv all-in-one-kubeconfig.yaml $HOME/.kube/config

相关推荐
学传打活4 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活9 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
DevOps老兵10 天前
Kubernetes生产运维02:只会get pods还不够,kubectl排障工具箱怎么组合使用
运维·容器·kubernetes·kubectl·devops·故障排查·sre
fangzhanpeng16817 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心19 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552725 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055271 个月前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝1 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055271 个月前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 个月前
Java AWT鼠标事件全解析
人工智能·1024程序员节