Kubernetes 配置 kubeconfig 访问多个集群

Kubernetes 专栏收录该内容
12 篇文章 1 订阅

Kubernetes 配置 kubeconfig 访问多个集群

如果有多个不同的集群,需要切换访问,就需要配置多个 Kubernetes 账号和 Context;集群的 KubeConfig 文件一般为~/.kube/config,默认只能访问一个集群,如果需要访问多个集群就需要修改这个文件

可以参考文档 https://kubernetes.io/zh/docs/tasks/access-application-cluster/configure-access-multiple-clusters/配置,但是这个文档描述不够直接简单,可以参考以下内容直接修改

假设现在有两个集群,一个是本地的 docker-for-desktop-cluster,另一个是部署在测试环境的 kubernetes ,本地只有 docker-for-desktop-cluster的配置

根据官方文档合并后的 Demo,其实是将两个 Config 文件的相同类型的字段直接合并了,所以直接将相同的字段的其他集群的配置内容复制到当前的配置中即可,如:将kubernetescluster 的配置直接复制到当前配置中:

  • 测试环境 cluster 配置
- cluster:
    certificate-authority-data: CERTIFICATE_AUTHORITY_DATA 
    server: https://192.168.111.129:6443
  name: kubernetes
  • 本地集群 cluster 配置
- cluster:
    insecure-skip-tls-verify: true
    server: https://localhost:6443
  name: docker-for-desktop-cluster
  • 合并后
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://localhost:6443
  name: docker-for-desktop-cluster
- cluster:
    certificate-authority-data: CERTIFICATE_AUTHORITY_DATA
    server: https://192.168.111.129:6443
  name: kubernetes
  • 合并完成后更新配置
export KUBECONFIG=~/.kube/config
  • 查看合并后的 kubeconfig
kubectl config view
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://localhost:6443
  name: docker-for-desktop-cluster
- cluster:
    certificate-authority-data: REDACTED
    server: https://192.168.111.129:6443
  name: kubernetes
contexts:
- context:
    cluster: docker-for-desktop-cluster
    user: docker-for-desktop
  name: docker-for-desktop
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: docker-for-desktop
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
  • 查看集群
kubectl config get-contexts
CURRENT   NAME                          CLUSTER                      AUTHINFO             NAMESPACE
          docker-for-desktop            docker-for-desktop-cluster   docker-for-desktop
*         kubernetes-admin@kubernetes   kubernetes                   kubernetes-admin
  • 切换集群
kubectl config use-context docker-for-desktop
kubectl config use-context kubernetes-admin@kubernetes
  • 如果想限制用户的 Namespace,可以在 context 中加入namespaces 配置
- context:
    cluster: docker-for-desktop-cluster
    user: docker-for-desktop
    namespace: default
  name: docker-for-desktop

  • 本地docker-for-desktop-cluster 的配置 (~/.kube/config)内容
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://localhost:6443
  name: docker-for-desktop-cluster
contexts:
- context:
    cluster: docker-for-desktop-cluster
    user: docker-for-desktop
  name: docker-for-desktop
current-context: docker-for-desktop
kind: Config
preferences: {}
users:
- name: docker-for-desktop
  user:
    client-certificate-data: CLIENT_CERTIFICATE_DATA
    client-key-data: CLIENT_KEY_DATA
  • 测试环境 kubernetes 的 配置(~/.kube/config)内容
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: CERTIFICATE_AUTHORITY_DATA 
    server: https://192.168.111.129: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_CERTIFICATE_DATA
    client-key-data: CLIENT_KEY_DATA
  • 合并后
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://localhost:6443
  name: docker-for-desktop-cluster
- cluster:
    certificate-authority-data: CERTIFICATE_AUTHORITY_DATA
    server: https://192.168.111.129:6443
  name: kubernetes
contexts:
- context:
    cluster: docker-for-desktop-cluster
    user: docker-for-desktop
  name: docker-for-desktop
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: docker-for-desktop
  user:
    client-certificate-data: CLIENT_CERTIFICATE_DATA
    client-key-data: CLIENT_KEY_DATA
- name: kubernetes-admin
  user:
    client-certificate-data: CLIENT_CERTIFICATE_DATA
    client-key-data: CLIENT_KEY_DATA
  • 0
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
<p>推荐购买本人首页k8s架构师套餐课程,更加全面、更加优惠<br /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLBoia0GxLr6twkZGFQZWP51JAQsPlkKP3gHnUegMeKTUbhZRaawiaRI0XW1rAwWkPOfU/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLBoia0GxLr6twkZGFQZWP51JAQsPlkKP3gHnUegMeKTUbhZRaawiaRI0XW1rAwWkPOfU/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLDO477rS2icDMLnOaM70cc1Zwo1KPBo7icxx1ibRqwQmMtmR2oW2Gpqavdh95GCgtohuA/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLDO477rS2icDMLnOaM70cc1Zwo1KPBo7icxx1ibRqwQmMtmR2oW2Gpqavdh95GCgtohuA/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLDca4M7OVWvRwD1FRbnWMkN8IIDTfDe6HRvjf4WBnY5GKR4kXl3WRriayNMKKDjkB28/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLDca4M7OVWvRwD1FRbnWMkN8IIDTfDe6HRvjf4WBnY5GKR4kXl3WRriayNMKKDjkB28/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLC3EGFOKqkgraNmiamibadnsEV68VKia6EFoobxHJwvsIicTQUBVqibubd10v9OZEVJ2N6E/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLC3EGFOKqkgraNmiamibadnsEV68VKia6EFoobxHJwvsIicTQUBVqibubd10v9OZEVJ2N6E/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLDOAPxFwbSjRQz2swzz6uxqRtMBfKMaWLh7OeE7BpwbzxwnHWKicicLfNjicIBFyCvps0/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLDOAPxFwbSjRQz2swzz6uxqRtMBfKMaWLh7OeE7BpwbzxwnHWKicicLfNjicIBFyCvps0/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLA0cRZhdiaWUtKlkDZY6Ee6YmnblrVJLvxcOySCJULLU8PViaQFN2ialKDvyIibZFJz91g/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLA0cRZhdiaWUtKlkDZY6Ee6YmnblrVJLvxcOySCJULLU8PViaQFN2ialKDvyIibZFJz91g/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLAPLdibmWicauicw1wbKpCQkPOpqqF9iaJGhsOOFJlkEAyibsRibmuK4XnuLc2ILVff2mXMQ/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLAPLdibmWicauicw1wbKpCQkPOpqqF9iaJGhsOOFJlkEAyibsRibmuK4XnuLc2ILVff2mXMQ/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLCe2d50sKQwNXBmYPjM535yG6JlRZZXK8jlooZUteSLoL3fz5icJYbDTeAVQ5HHmKZI/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLCe2d50sKQwNXBmYPjM535yG6JlRZZXK8jlooZUteSLoL3fz5icJYbDTeAVQ5HHmKZI/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLBzialia307kVWibHPObn3u6VAgZx5ibArebKCibSQAnCQ8VricssMILt3IRNRpuLWKicBYMg/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLBzialia307kVWibHPObn3u6VAgZx5ibArebKCibSQAnCQ8VricssMILt3IRNRpuLWKicBYMg/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLAib1grEBvlmx5dvSeFOFJkCv4RgbKKg7iaSpP5FBtYIVg66v8B3gss6dibCIQKPBA2nI/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLAib1grEBvlmx5dvSeFOFJkCv4RgbKKg7iaSpP5FBtYIVg66v8B3gss6dibCIQKPBA2nI/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLDBNqIDBGDZHFpIWqUNS2rCtHdoasxddJYZWZk4mPOVBf7X8vxmgTaZaicdMwQb2V2U/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLDBNqIDBGDZHFpIWqUNS2rCtHdoasxddJYZWZk4mPOVBf7X8vxmgTaZaicdMwQb2V2U/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLB46TicNIgibvBuMWz3vL3JP3e4G2wVBpKGRhxQNIOww3bZG2OTicVichrqXhvF19Siab4I/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLB46TicNIgibvBuMWz3vL3JP3e4G2wVBpKGRhxQNIOww3bZG2OTicVichrqXhvF19Siab4I/" /><img src="https://10.idqqimg.com/qqke_course_info/ajNVdqHZLLCicsZfGXiaqKKcGsFIbEc8qnSa5BlBAvwf8q9Q8zZMUxqffpvZ29jFXy5tm4icMOMSSY/" data-cke-saved-src="//10.idqqimg.com/qqke_course_info/ajNVdqHZLLCicsZfGXiaqKKcGsFIbEc8qnSa5BlBAvwf8q9Q8zZMUxqffpvZ29jFXy5tm4icMOMSSY/" /></p>
<p> <span style="color:#333333;">Kubernetes</span><span style="color:#333333;">是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。</span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;">在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。</span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;">虽说我们可以使用比如Kubeadm工具可以简化k8s集群的部署,但这却对我们k8s的各个组件如何协同工作,及排错造成困扰。本套课程主要是以二进制的方式来一步步的安装k8s的集群,来加深我们对K8s集群进一步的理解。同时也可以作为我们生产部署的一种方式。</span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <strong><span style="color:#333333;"><span>知识讲解:</span></span></strong> </p> <p> <span style="color:#333333;"><span>   1.   </span></span><span style="color:#333333;">概述了K8s的集群的一个整体架构。</span> </p> <p> <span style="color:#333333;"> 2. 为了实现各个组件的通信,讲解了如何为各组件签发证书、配置kubeconfig、和产生加密的key及密钥。</span> </p> <p> <span style="color:#333333;"> 3. Etcd</span><span style="color:#333333;">键值存储集群的部署。</span> </p> <p> <span style="color:#333333;"> 4. K8s</span><span style="color:#333333;">的主节点的三大组件一步步的部署。</span> </p> <p> <span style="color:#333333;"> 5. K8s</span><span style="color:#333333;">的worker节点的三大组件及flannel网络插件部署。</span> </p> <p> <span style="color:#333333;"> 6. 部署kube coredns作为k8s内部的域名解析。</span> </p> <p> <span style="color:#333333;"><span><br /></span></span> </p> <p> <span style="color:#333333;"><span>注意:</span></span><span style="color:#FF0000;">本课程学习需要具有一定的Linux基础,**是学习过K8s集群或者在使用K8S使用有一段时间的。这样可以更好的理解本套课程内容。</span> </p> <p> <span style="color:#FF0000;"><br /></span> </p> <p> <span style="color:#FF0000;"><img src="https://img-bss.csdn.net/202003240658215582.png" alt="" /><br /></span> </p>
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

呜呜呜啦啦啦

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值