前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用kubectl配置多集群管理

使用kubectl配置多集群管理

原创
作者头像
genesis
修改2022-01-27 11:40:41
2.4K0
修改2022-01-27 11:40:41
举报
文章被收录于专栏:20222022

大家都知道kubectl主要用来管理kubernetes集群,但当我们的环境中有多套kubernetes集群时,该如何进行管理呢,下面列出了通过配置kubeconfig来实现kubectl管理多套集群的方法。

一、使用kubeclt合并多个config

这里假设当前客户端已配置一个集群的访问凭证, 即~/.kube/config 里已包含一套集群的访问凭证,那么我们可以将另一套集群的访问凭证上传到/tmp,并命名为test-config,然后执行以下命令以合并多个集群的config。

代码语言:javascript
复制
#KUBECONFIG=~/.kube/config:/tmp/test-config kubectl config view --merge --flatten >> ~/.kube/config
#export KUBECONFIG=~/.kube/config

可以使用kubectl config view查看合并后kubeconfig配置情况,正常情况下,可以显示两个集群凭证信息。

说明:这里在测试时遇到个小问题,上面的命令不加>> ~/.kube/config时,可以输出两个集群的访问凭证,正常情况下应该使用

> ~/.kube/config 将输出结果覆盖到config中,实际执行完成后,config只保留了test-config的访问凭证,所以换成了使用>> ~/.kube/config,将两个集群的访问凭证追加到config文件中,但同时之前的访问凭证还存在。

二、将多个config配置到环境变量

我们将另一套集群的访问凭证上传到~/.kube,并命名为test-config,然后进行如下命令:

代码语言:javascript
复制
#echo KUBECONFIG=/root/.kube/config:/root/.kube/test-config ~/.bash_profile
#source ~/.bash_profile

执行kubectl config view同样可以看到kubeconfig包含两个集群的访问凭证。

三、手工配置

手工方式较为繁琐,只所以列出来,是想观察下config的详细格式,这样能对kubeconfig有个更清晰的认识,如下为config的详细格式。

代码语言:javascript
复制
#一个访问凭证时#
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ***
    server: https://192.168.*.*:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: ***
    client-key-data: ***


#两个访问凭证时#
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ***
    server: https://42.194.*.*:443/
  name: cls-ec6ymsmo
- cluster:
    certificate-authority-data: ***
    server: https://192.168.*.*:6443
  name: kubernetes
contexts:
- context:
    cluster: cls-ec6ymsmo
    user: "10000******"
  name: cls-ec6ymsmo-10000******
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: "100006621061"
  user:
    client-certificate-data: ***
    client-key-data: ***
- name: kubernetes-admin
  user:
    client-certificate-data: ***
    client-key-data: ***

可以很清晰的看出来,我们也可以通过手工的方式将另一套集群的cluster、context、user按照格式要求粘贴到config即可。

四、总结

三种配置方法我倾向于使用第二种,当需要管理多套集群时配置起来也比较简单,值得注意的是第一种配置方法在使用> ~/.kube/config时会把之前的访问凭证覆盖掉,这时可以将集群的/etc/kubernetes/admin.conf文件重新复制出来一份。

当配置完多集群访问凭证后,可以使用以下命令进行多集群信息的查看及切换。

代码语言:javascript
复制
kubectl config get-contexts     #查看集群信息,*表示当前的工作环境。
kubectl config use-context kubernetes-admin@kubernetes   #切换工作环境到kubernetes-admin@kubernetes
kubectl config --help   #查看更多的config使用命令

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、使用kubeclt合并多个config
  • 二、将多个config配置到环境变量
  • 三、手工配置
  • 四、总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档