通过kubeconfig配置对多集群的访问

背景

假设你有多个集群,平时需要对多个集群运维,那么可以通过
kubectl --kubeconfig=<k8s config文件>来进行多个集群之间的切换,但是这样命令会显示的很长,操作起来很麻烦。
此时可以融合kubeconfig文件通过context来进行多集群之间的切换是很方便的。

kubeconfig 文件可以包含 context 元素,每个 context 都是一个由(集群、命名空间、用户)描述的三元组。您可以使用 kubectl config use-context 去设置当前的 context。命令行工具 kubectl 与当前 context 中指定的集群和命名空间进行通信,并且使用当前 context 中包含的用户凭证。

定义集群、用户和上下文

cluster:你的集群名称
name: 你的集群名称
certificate-authority-data: 证书颁发机构数据
server: apiserver url
user: 管理集群用户名称
client-certificate-data: 连接集群证书
client-key-data: 连接集群密钥
namespace: 默认命名空间
current-context: 设置默认集群

融合kubeconfig文件(将多个集群的kubeconfig合并到同一个文件中)

vim  ~/.kube/config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxxxx 
    server:https://xxxxx:6443
  name: k8s-cluster1
- cluster:
    certificate-authority-data: xxxxxxxx 
    server:https://xxxxx:6443
  name: k8s-cluster2
- cluster:
    certificate-authority-data: xxxxxxxx 
    server:https://xxxxx:6443
  name: k8s-cluster3
- cluster:
    certificate-authority-data: xxxxxxxx 
    server:https://xxxxx:6443
  name: k8s-cluster4
- cluster:
    certificate-authority-data: xxxxxxxx 
    server:https://xxxxx:6443
  name: k8s-cluster5
- cluster:
    certificate-authority-data: xxxxxxxx 
    server:https://xxxxx:6443
  name: k8s-cluster6
contexts:
- context:
    cluster: k8s-cluster1
    namespace: ops
    user: k8s-cluster1
  name: k8s-cluster1
- context:
    cluster: k8s-cluster2
    user: k8s-cluster2
  name: k8s-cluster2
- context:
    cluster: k8s-cluster3
    namespace: ops
    user: k8s-cluster3
  name: k8s-cluster3
- context:
    cluster: k8s-cluster4
    namespace: ops
    user: k8s-cluster4
  name: k8s-cluster4
- context:
    cluster: k8s-cluster5
    namespace: ops
    user: k8s-cluster5
  name: k8s-cluster5
- context:
    cluster: k8s-cluster6
    namespace: ops
    user: k8s-cluster6
  name: k8s-cluster6
current-context: k8s-cluster1
kind: Config
preferences: {}
users:
- name: k8s-cluster1
  user:
    client-certificate-data: xxxxxxxx 
    client-key-data: xxxxxxxx 
- name: k8s-cluster2
  user:
    client-certificate-data: xxxxxxxx 
    client-key-data: xxxxxxxx 
- name: k8s-cluster3
  user:
    client-certificate-data: xxxxxxxx 
    client-key-data: xxxxxxxx 
- name: k8s-cluster4
  user:
    client-certificate-data: xxxxxxxx 
    client-key-data: xxxxxxxx 
- name: k8s-cluster5
  user:
    client-certificate-data: xxxxxxxx 
    client-key-data: xxxxxxxx 
- name: k8s-cluster6
  user:
    client-certificate-data: xxxxxxxx 
    client-key-data: xxxxxxxx 

切换集群操作

# 查看多个 kubeconfig 文件融合的结果
kubectl config view
# 切换集群
kubectl config use-context <kubeconfig中配置的clustername>
# 查看当前集群pod资源
kubectl get pods 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱吃肉@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值