kubectl use-context配置多集群访问

简介: 今天在rancher平台上进行日常维护。在多个集群切换时,鼠标一顿点点点还是有点不够顺畅。于是在"瑞斯拜"的chrome里面找到了k8s有关多集群访问配置的桥段,下面根据实践过程做简单描述

今天在rancher平台上进行日常维护。在多个集群切换时,鼠标一顿点点点还是有点不够顺畅。于是在"瑞斯拜"的chrome里面找到了k8s有关多集群访问配置的桥段,下面根据实践过程做简单描述

使用 kubeconfig 文件组织集群访问

通过 kubectl 连接k8s集群时,默认情况下,kubectl 会在 $HOME/.kube 目录下查找名为 config 的文件,我直接root用户登录的、我的 config配置文件路径为 ~/.kube/config下面贴上具体的配置和简要注释

apiVersion: v1
kind: Config
clusters:
- name: "fralychen"  # 集群名称、下面的contexts里面的cluster:value值对应
  cluster:
    server: "https://rancher.fralychen.com/k8s/clusters/a-99abr"

users:
- name: "fralychen"  # 用户名称、下面的contexts里面的user:value值对应
  user:
    token: "****"

contexts:
- name: "fralychen"  # 上下文名称、在命令行中做集群切换时会用到
  context:
    user: "fralychen"
    cluster: "fralychen"

current-context: "fralychen"  # 当前正在使用的上下文名称、表示kubectl连接的集群为fralychen

配置对多集群的访问

     在将集群、用户和上下文定义在一个或多个配置文件中之后,用户可以使用 kubectl config use-context 命令快速地在集群之间进行切换。rancher针对每个集群都有对应的kubeconfig文件,文件中连接的用户(user)名、集群(cluster)名、上下文(contexts)都是对应的,我这边根据字段一一添加到~/.kube/config文件中即可

apiVersion: v1
kind: Config
clusters:
- name: "fralychen" 
  cluster:
    server: "https://rancher.fralychen.com/k8s/clusters/a-99abr"
- name: "fralychen1"   # 这是新加的
  cluster:
    server: "https://rancher.fralychen.com/k8s/clusters/c-t8nci"

users:
- name: "fralychen" 
  user:
    token: "****"
- name: "fralychen1"   # 这是新加的
  user:
    token: "***"

contexts:
- name: "fralychen"  
  context:
    user: "fralychen"
    cluster: "fralychen"
- name: "fralychen1"   # 这是新加的
  context:
    user: "fralychen1"
    cluster: "fralychen1"


current-context: "fralychen" 

集群切换

kubectl config view #查看config配置信息

.... # 省略输出

kubectl config user-context fralychen1 #切换集群

Switched to context "fralychen1". # 表示切换成功

F&Q

如果不是rancher平台怎么配置多集群访问

配置一致,但需要注意用户验证这一块、rancher这边是使用计算好的tokeen值对k8s集群进行连接的,如果通过原生kubectl连接的话需要配置连接的用户信息(username、password),下面是官方的命令行配置参考
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password

可以直接通过kubectl管理多集群的连接信息么

可以的

  1. 要删除用户,可以运行 kubectl --kubeconfig=config-demo config unset users.
  2. 要删除集群,可以运行 kubectl --kubeconfig=config-demo config unset clusters.
  3. 要删除上下文,可以运行 kubectl --kubeconfig=config-demo config unset contexts.

有问题可留言,欢迎各种跨白

参考连接

配置多集群访问/kubernetes

400-200.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 Java 开发者
Java变量命名规则
Java变量命名规则
915 0
|
10月前
|
XML 存储 算法
5大实战技巧:优化RAG召回质量,避免“召回不足”灾难!
本文分享了团队在金融风控系统开发中优化RAG系统的实战经验,涵盖文档处理、召回策略与生成优化三大环节,解决召回不准、数据噪声等问题,助力构建高效精准的RAG系统。
2125 1
|
4月前
|
人工智能 数据中心 芯片
告别AI算力圈“局外人”的100词手册
本文系统梳理AI与算力领域的100个核心术语,涵盖基础概念(如LLM、AGI、训练/推理)、硬件架构(GPU/TPU/NPU、HBM、NVLink)、数据中心(集群、液冷、PUE)及网络技术(RoCE、InfiniBand、DPU)四大维度,是入门者快速掌握AI基建语言的实用指南。(239字)
1089 4
|
5月前
|
运维 Prometheus 监控
抓包不如“开天眼”:用 eBPF 搭一条实时流量取样与可视化流水线
抓包不如“开天眼”:用 eBPF 搭一条实时流量取样与可视化流水线
407 5
|
12月前
|
人工智能 编译器 Linux
golang交叉编译和条件编译的实际应用
交叉编译是指在一个平台上生成可在另一平台运行的可执行代码。它允许开发者在资源受限或未准备好的目标环境下提前编译程序。条件编译则根据特定条件选择性地编译代码,常用于适配不同运行环境或区分开发与发布版本。两者结合,能有效提升开发效率与程序适配能力。
366 0
|
SQL 关系型数据库 MySQL
SQL命令行退出操作指南:轻松掌握不同数据库环境下的退出技巧
在数据库管理与开发过程中,经常需要通过SQL命令行工具(如MySQL的mysql客户端、PostgreSQL的psql、SQL Server的sqlcmd等)与数据库进行交互
1671 59
|
Kubernetes 网络协议 API
node节点加入k8s集群时报错:no such host
node节点加入k8s集群时报错:no such host
786 0
|
存储
cephFS高可用分布式文件系统部署指南
关于如何部署高可用的cephFS分布式文件系统,包括集群的搭建、验证高可用性以及实现两主一从架构的详细指南。
1485 10
|
Web App开发 移动开发 JavaScript
datalist 是什么?以及作用是什么?
datalist 是什么?以及作用是什么?
441 0
|
JSON Java fastjson
Java String转JSONObject时保持顺序不变
Java String转JSONObject/JSONArray时保持顺序不变
Java String转JSONObject时保持顺序不变