KubeCm

背景

Kubernetes 提供了 kubectl 命令行工具来操作集群,使用 kubeconfig 作为配置文件,默认路径是 ~/.kube/config,如果想使用 kubectl 对多个集群进行管理和操作,就在 kubeconfig 中配置多个集群的信息即可,通常可以通过编辑 kubeconfig 文件或执行一堆 kubectl config 的命令来实现。

一般情况下,Kubernetes 集群在安装或创建好之后,都会生成 kubeconfig 文件,如何简单高效的将这些 kubeconfig 合并以便让我们通过一个 kubeconfig 就能方便的管理多集群呢?我们可以借助 kubecm 这个工具,本文将介绍如何利用 kubecm 来实现多集群的 kubeconfig 高效管理。

官方文档*

#!/bin/bash
VERSION=0.16.3
# linux x86_64
curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Linux_x86_64.tar.gz
# linux & macos
tar -zxvf kubecm.tar.gz kubecm
cd kubecm
sudo mv kubecm /usr/local/bin/

把多个config配置放在一个目录

cd sy
cp /root/.kube/aliyun_prod-config .
cp /root/.kube/vnet_prod-config .
cp /root/.kube/bjcs_test-config .

merge一下,合并kubeconfig文件

kubecm merge -f sy
#直接把新生成的 kubeconfig 文件替换 $HOME/.kube/config 文件
kubecm merge -f sy -c

切换集群


# kubecm
+------------+-----------------------+-----------------------+--------------------+--------------+
|   CURRENT  |          NAME         |        CLUSTER        |        USER        |   Namespace  |
+============+=======================+=======================+====================+======
--------+
|            |    vnet_prod-config   |   cluster-ccccc5  |   user-hbhbh9gmd5  |              |
+------------+-----------------------+-----------------------+--------------------+--------------+
|      *     |   aliyun_prod-config  |   cluster-bbbbb59  |   user-m4fd662d59  |              |
+------------+-----------------------+-----------------------+--------------------+--------------+
|            |    bjcs_test-config   |   cluster-baaaaa  |   user-b9mbtft7b2  |              |
+------------+-----------------------+-----------------------+--------------------+--------------+

2020/06/22 11:25:41 Cluster check succeeded!
Contains components: [scheduler controller-manager etcd-0 etcd-1 etcd-3 etcd-2 etcd-4]
# kubecm switch
Use the arrow keys to navigate: ↓ ↑ → ←  and / toggles search
Select Kube Context
   aliyun_prod-config(*)
    bjcs_test-config
↓   vnet_prod-config
# kubecm ns
Search: test█
Select Namespace:
    test
   test1

你可能感兴趣的:(KubeCm)