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

背景

假设你有多个集群,平时需要对多个集群运维,那么可以通过
kubectl --kubeconfig=来进行多个集群之间的切换,但是这样命令会显示的很长,操作起来很麻烦。
此时可以融合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 
# 查看当前集群pod资源
kubectl get pods 

你可能感兴趣的:(Kubernetes学习笔记,kubernetes,java,docker)