在实际生产环境中,往往需要维护多个k8s集群,在多个环境和节点之间切换,影响工作效率,不符合devops的理念,因此尝试在单个节点下面维护多个k8s集群。

1) 模拟存在两套k8s集群

第一个k8s集群:

[root@k8smaster ~]# kubectl get nodes

NAME         STATUS      ROLES         VERSION

k8smaster     Ready        controlplane    v1.23.1

k8slave        Ready        worker          v1.23.1

k8smaster:182.168.40.180

k8slave:192.168.40.181

第二个k8s集群

[root@k8smaster2]# kubectl get nodes

NAME          STATUS     ROLES         VERSION

k8smaster2     Ready       controlplane    v1.23.1

k8slave2       Ready        worker        v1.23.1

k8smaster2:192.168.40.185

k8slave2:  192.168.40.186

2) kubeconfig文件

查看kubeconfig文件可以使用kubectl config命令,也可以直接查看/root/.kube/config(默认位置)

k8smaster集群

[root@k8smaster ~]#kubectl  config view

apiVersion: v1

clusters:

- cluster:

    certificate-authority-data: DATA+OMITTED

    server: https://192.168.40.180: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: REDACTED

    client-key-data: REDACTED

k8smaster2集群                     

[root@k8smaster2~]# kubectl  config view

apiVersion: v1

clusters:

- cluster:

    certificate-authority-data: DATA+OMITTED

    server: https://192.168.40.185: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: REDACTED

    client-key-data: REDACTED

3) 在k8smaster上配置k8smaster2的cluster、user、context

a、添加cluster

[root@k8smaster]#kubectl config set-cluster k8smaster2 --server=https://192.168.40.185:6443--insecure-skip-tls-verify=true

b、添加user

[root@k8smaster]#kubeadm token create --print-join-command

[root@k8smaster]#kubectl config set-credentials k8smaster2-user --token= clknqa.km25oi82urcuja9u

c、添加context

[root@k8smaster]# kubectl config set-context k8smaster2-context--cluster= k8smaster2  --user=k8smaster2-user

d、切换context管理k8s集群

[root@k8smaster]#kubectl config use-context k8smaster2-context

至此,在k8smaster节点上维护了两个k8s集群,按照同样的办法可以添加更多的k8s集群,只是通过不同的context进行切换。

精彩文章推荐

2022,这些技术决定你的薪资|K8S+微服务+DevOps等前沿涨薪技术最佳实践

秒级扩容+自动部署+微服务落地,k8s必不可少

年底了,总结下这一年,收获满满

基于Jenkins+git+harbor+Helm+k8s+Istio构建DevOps流水线

基于k8s+Prometheus+Alertmanager+Grafana构建企业监控告警系统

k8s七层代理Ingress-nginx基于cookie、请求头、权重实现灰度发布

如何优化k8s网络插件?

修改k8s kube-proxy代理-由iptables模式变为ipvs模式

k8s控制器Deployment详细介绍:资源清单编写技巧

k8s常用的网络插件优化方案|干货

          点亮,服务器10年不宕机b8b62eb2c9678e4bf229bd57e260cd14.giff804f0a228c958b232e0fcb07f51a65c.gif

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐