【Kubernetes】多集群管理实践 - kubeconfig

Kubernetes 原生提供了 kubeconfig 文件机制,为多集群管理而设计,一起来看看如何使用吧!

  • 集群 dev:Kubernetes 1.31.19
  • 集群 prod:Kubernetes 1.35

1、理解 kubeconfig

1.1、kubeconfig 文件结构

bash 复制代码
# kubeconfig 文件包含三个主要部分:集群列表、上下文列表、用户认证信息
apiVersion: v1
kind: Config
clusters:                  # 集群列表
- name: prod-cluster
  cluster:
    server: https://api.prod.example.com
    certificate-authority-data: <base64-ca-cert>
     
contexts:                   # 上下文列表(集群+用户+命名空间)
- name: prod-admin
  context:
    cluster: prod-cluster
    user: admin-user
    namespace: default
    
current-context: prod-admin  # 当前使用的上下文

users:                       # 用户认证信息
- name: admin-user
  user:
    client-certificate-data: <base64-cert>
    client-key-data: <base64-key>

2.1、基本命令

bash 复制代码
# 查看当前配置
kubectl config view

# 查看原始配置
kubectl config view --raw

# 查看特定上下文配置
kubectl config view --context=prod-cluster

# 列出所有上下文
kubectl config get-contexts

# 切换当前上下文
kubectl config use-context prod-admin

2、使用 kubeconfig

2.1、多集群配置

  • 集群 dev:Kubernetes 1.31.19、3节点
  • 集群 prod:Kubernetes 1.35、1节点
  • 集群 config 文件位于控制节点 ~/.kube/config

2.2、安装 kubectl 命令(可选)

2.3、拷贝 config 文件

bash 复制代码
# 拷贝 prod 集群的 config 文件
scp -r root@172.16.12.36:/root/.kube/config ./config_prod
# 拷贝 dev 集群的 config 文件
scp -r root@172.16.15.105:/root/.kube/config ./config_dev

2.4、使用 config 文件连接集群

bash 复制代码
# dev 集群
kubectl --kubeconfig=config_dev get node
# prod 集群
kubectl --kubeconfig=config_prod get node

2.5、合并 config

  • 手动修改 config_dev 和 config_prod 文件
  • 修改集群名称、用户信息、上下文内容,不能使用重复名称
  • 将 config_dev 和 config_prod 合并为 config_dev_prod 文件,后续仅使用合并的文件连接 dev 和 prod 集群
bash 复制代码
# windows 环境下命令
set KUBECONFIG=config_dev;config_prod && kubectl config view --merge --flatten > config_dev_prod

# linux 环境下命令
KUBECONFIG=./config1:./config2 kubectl config view --flatten > ./configX

2.6、连接集群

bash 复制代码
# 查看上下文
kubectl --kubeconfig=config_dev_prod config get-contexts

# 查看当前上下文集群的节点
kubectl --kubeconfig=config_dev_prod get node

# 切换上下文
kubectl --kubeconfig=config_dev_prod config use-context prod

# 查看切换后上下文集群的节点
kubectl --kubeconfig=config_dev_prod get node
相关推荐
ltl15 小时前
mTLS 工程实践:服务间双向认证怎么落地
kubernetes
栩栩云生1 天前
别再硬记 AWS 和 k8s 命令了!一行命令把十几个云平台的 CLI 全接进 AI
kubernetes·agent·mcp
对象存储与RustFS1 天前
给 Kubernetes 找一个对象存储后端:RustFS Helm 部署 + 应用接入实录
后端·云原生·kubernetes
分布式存储与RustFS1 天前
给 Kubernetes 找一个对象存储后端:RustFS Helm 部署 + 应用接入实录
云原生·kubernetes·开源·对象存储·分布式存储·s3·rustfs
IT大白鼠1 天前
容器安全入门:K8s常见基础安全风险通俗解读
安全·容器·kubernetes
ltl2 天前
CoreDNS 深度拆解:ndots、search domain 与那些坑人的 DNS
kubernetes
有脚就行2 天前
第33篇-KServe推理平台-标准化的K8s推理服务管理
人工智能·云原生·容器·kubernetes
名字还没想好☜2 天前
Kubernetes StatefulSet 实战:为什么数据库不能用 Deployment 部署
数据库·云原生·容器·kubernetes·statefulset
瞬间&永恒~2 天前
【Kubernetes】(七)Kubernetes控制器
云原生·容器·kubernetes
李少兄2 天前
Kubernetes Pod 状态全解析:从 Phase 到 CrashLoopBackOff
云原生·容器·kubernetes