K8S 实用工具之合并多个kubeconfig实现详解

 更新时间:2023年03月03日 16:53:19   作者:东风微鸣  
这篇文章主要为大家介绍了K8S 实用工具之合并多个kubeconfig实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

开篇

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

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 安装:

如果需要用代理,请先配置 proxy,操作指南:Advanced Configuration · Krew

确认已安装 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\)\?.*/\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
)

添加 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

总结

今天分享了 2 个实用插件:

  • krewkubectl 插件管理器
  • konfig:kubeconfig 配置管理插件

以上就是K8S 实用工具之合并多个kubeconfig实现详解的详细内容,更多关于K8S合并多个kubeconfig的资料请关注脚本之家其它相关文章!

相关文章

  • Prometheus Operator架构介绍

    Prometheus Operator架构介绍

    这篇文章主要为大家介绍了Prometheus Operator架构介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 理解k8s控制器DaemonSet创建及使用场景

    理解k8s控制器DaemonSet创建及使用场景

    这篇文章主要为大家介绍了k8s控制器DaemonSet创建及使用场景详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • IoT 边缘集群Kubernetes Events告警通知进一步配置详解

    IoT 边缘集群Kubernetes Events告警通知进一步配置详解

    这篇文章主要为大家介绍了IoT 边缘集群Kubernetes Events告警通知进一步配置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Kubernetes实现CI与CD配置教程

    Kubernetes实现CI与CD配置教程

    这篇文章主要为大家介绍了基于Kubernetes实现CI与CD配置教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • K8s创建资源的两种方法实例

    K8s创建资源的两种方法实例

    而在我看来,在学习K8S之前,有必要对K8S的资源对象有个全局的概念,下面这篇文章主要给大家介绍了关于K8s创建资源的两种方法,需要的朋友可以参考下
    2022-05-05
  • Kubernetes应用配置管理创建使用详解

    Kubernetes应用配置管理创建使用详解

    这篇文章主要为大家介绍了Kubernetes应用配置管理创建使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • k8s中job与cronjob使用实例详解

    k8s中job与cronjob使用实例详解

    k8s中的job,主要用于批量处理的业务场景,比如像那种短暂的一次性任务(每个任务仅运行一次就结束),这篇文章主要介绍了k8s中job与cronjob使用详解,需要的朋友可以参考下
    2023-03-03
  • K8s解决主机重启后kubelet无法自动启动问题(推荐)

    K8s解决主机重启后kubelet无法自动启动问题(推荐)

    在安装配置好Kubernetes后,正常情况下服务器关机重启,kubelet也会自动启动的,如何解决这个问题呢,下面小编给大家带来了K8s解决主机重启后kubelet无法自动启动问题,感兴趣的朋友一起看看吧
    2022-08-08
  • Rainbond使用Dockerfile构建便捷应用运行流程

    Rainbond使用Dockerfile构建便捷应用运行流程

    这篇文章主要为大家介绍了Rainbond使用Dockerfile构建便捷应用运行流程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • k8s部署Pyroscope并分析golang性能瓶颈(最新推荐)

    k8s部署Pyroscope并分析golang性能瓶颈(最新推荐)

    这篇文章主要介绍了k8s部署Pyroscope并分析golang性能瓶颈,Pyroscope支持多种编程语言并提供了丰富的性能数据,可以帮助我们跟踪应用程序的执行情况,并根据收集到的数据来识别性能瓶颈,需要的朋友可以参考下
    2023-04-04

最新评论