专栏首页YP小站Kubeconfig文件自动合并-实现K8S多集群切换

Kubeconfig文件自动合并-实现K8S多集群切换

前言

随着 Kubernetes 越来越流行,不管大公司还是小公司都往 Kubernetes 迁移,每个公司最少有两套集群(测试和生产),但是多个集群就有多个 Kubeconfig 用户授权文件。虽然官方文档中有介绍多个 Kubeconfig 文件合并成一个 Kubeconfig,但是对于一些新手来说,看得不是很明白。

本文介绍 Kubeconfig 文件结构,并推荐一个工具自动合并 Kubeconfig

Kubeconfig 用途

kubectl 命令行工具通过 kubeconfig 文件的配置来选择集群以及集群API Server通信的所有信息。kubeconfig 文件用来保存关于集群用户命名空间身份验证机制的信息。默认情况下 kubectl 读取 $HOME/.kube/config 文件,也可以通过设置环境变量 KUBECONFIG 或者 --kubeconfig 指定其他的配置文件。

Kubeconfig 文件结构

kubeconfig 文件主要由下面几部分构成:

  • 集群参数
  • 用户参数
  • 上下文参数
  • 当前上下文
apiVersion: v1
kind: Config
preferences: {}

clusters: # 集群参数
- cluster:
  name: {cluster-name}

users: # 用户参数
- name: {user-name}

contexts: # 上下文参数
- context:
    cluster: {cluster-name}
    user: {user-name}
  name: kubernetes # 集群上下文名称
current-context: kubernetes # 当前上下文

kubeconfig 合并

通过 kubecm 工具合并多个 kubeconfig 文件

项目地址 https://github.com/sunny0826/kubecm

kubecm 安装

$ export VERSION=v0.8.0

# linux x86_64 安装包
$ curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Linux_x86_64.tar.gz

# macos 安装包
$ curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Darwin_x86_64.tar.gz

# windows 安装包
$ curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Windows_x86_64.tar.gz

# # linux & macos 安装
$ tar -zxvf kubecm.tar.gz kubecm
$ cd kubecm
$ sudo mv kubecm /usr/local/bin/

# windows 安装
# Unzip kubecm.tar.gz
# Add the binary in to your $PATH

多个 kubeconfig 文件合并

把需要合并的 Kubeconfig 文件放到 all_kubeconfig 目录下,执行命令后会在当前路径下产生一个新的 kubeconfig 文件

$ kubecm merge -f all_kubeconfig

直接把新生成的 kubeconfig 文件替换 $HOME/.kube/config 文件

$ kubecm merge -f all_kubeconfig -c

多集群切换

# 集群切换命令
$ kubecm switch

集群切换

小结

通过 kubecm 工具能快速的把多个 kubeconfig 文件合并到一个 kubeconfig 文件中,并且也提供集群切换。而不需要再下载 kubectx 工具来切换集群。

参考文档

  • https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/
  • https://github.com/sunny0826/kubecm

本文分享自微信公众号 - YP小站(ypxiaozhan),作者:YP小站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 聊聊 resolv.conf 中 search 和 ndots 配置

    Kubernetes 集群中,域名解析离不开 DNS 服务,在 Kubernetes v1.10 以前集群使用 kube-dns dns服务,后来在 Kuber...

    YP小站
  • Kubelet 证书自动续期

    当 Kubernetes 集群日志中出现 certificate has expired or is not yet valid 错误信息时,表明证书过期

    YP小站
  • 你对Http、Https了解到底有多少?

    今日给大家分享一篇 “网络服务” 文章。在这里不知道大家对Http 与 Https 到底了解多少?本篇分别介绍他们的定义、特点、使用场景、区别,包括具...

    YP小站
  • 推荐几款快速管理 Kubernetes 多集群环境的神器

    Kubernetes 生态在很多企业广泛应用的当下,相信很多运维和开发人员都会同时管理和维护多个 Kubernetes 集群,比如:开发环境、测试环境、预发布环...

    iMike
  • ICCV 2019 Oral | 期望最大化注意力网络 EMANet 详解

    本文转自知乎,作者立夏之光。AI科技评论获授权转载,如需转载请联系原作者。原文链接:https://dwz.cn/3BFMz8pW

    AI科技评论
  • ICCV 2019 | 解读北大提出的期望最大化注意力网络EMANet

    本文介绍笔者被 ICCV 2019 接受为 Oral 的论文 Expectation-Maximization Attention Networks for S...

    机器之心
  • Python3中列表del(),remo

    py3study
  • Spring 4.0.2 学习笔记(1) - 最基本的注入

    1、 添加maven支持 <dependency> <groupId>org.springframework</grou...

    菩提树下的杨过
  • Python自动化开发学习-爬虫3

    讲师的博客:https://www.cnblogs.com/wupeiqi/p/6229292.html 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线...

    py3study
  • 一种有趣的帐户接管手段

    关于获取他人帐户的控制权,我曾在网上学习了不少前辈的经验和技巧,而在花费了6到8个小时后,我在目标站redacted.com的忘记密码页面中找到了一些可利用的痕...

    徐焱

扫码关注云+社区

领取腾讯云代金券