千家信息网

kubectl 中怎么配置多集群访问

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关kubectl 中怎么配置多集群访问,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。定义集群、用户和上下文假设用户有两个集群,一个用
千家信息网最后更新 2026年11月03日kubectl 中怎么配置多集群访问

这期内容当中小编将会给大家带来有关kubectl 中怎么配置多集群访问,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

定义集群、用户和上下文

假设用户有两个集群,一个用于正式开发工作(development),一个用于其它临时用途(scratch)。 在 development 集群中,前端开发者在名为 frontend 的命名空间下工作, 存储开发者在名为 storage 的命名空间下工作。 在 scratch 集群中, 开发人员可能在默认命名空间下工作,也可能视情况创建附加的命名空间。 访问开发集群需要通过证书进行认证。 访问其它临时用途的集群需要通过用户名和密码进行认证。

创建名为 config-exercise 的目录。 在 config-exercise 目录中,创建名为 config-demo 的文件,其内容为:

apiVersion: v1kind: Configpreferences: {}clusters:- cluster:  name: development- cluster:  name: scratchusers:- name: developer- name: experimentercontexts:- context:  name: dev-frontend- context:  name: dev-storage- context:  name: exp-scratch

配置文件描述了集群、用户名和上下文。 config-demo 文件中含有描述两个集群、两个用户和三个上下文的框架。

进入 config-exercise 目录。 输入以下命令,将群集详细信息添加到配置文件中:

kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-filekubectl config --kubeconfig=config-demo set-cluster scratch --server=https://5.6.7.8 --insecure-skip-tls-verify

将用户详细信息添加到配置文件中:

kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefilekubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password

将上下文详细信息添加到配置文件中:

kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developerkubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developerkubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter

打开 config-demo 文件查看添加的详细信息。 也可以使用 config view 命令进行查看:

kubectl config --kubeconfig=config-demo view

输出展示了两个集群、两个用户和三个上下文:

apiVersion: v1clusters:- cluster:    certificate-authority: fake-ca-file    server: https://1.2.3.4  name: development- cluster:    insecure-skip-tls-verify: true    server: https://5.6.7.8  name: scratchcontexts:- context:    cluster: development    namespace: frontend    user: developer  name: dev-frontend- context:    cluster: development    namespace: storage    user: developer  name: dev-storage- context:    cluster: scratch    namespace: default    user: experimenter  name: exp-scratchcurrent-context: ""kind: Configpreferences: {}users:- name: developer  user:    client-certificate: fake-cert-file    client-key: fake-key-file- name: experimenter  user:    password: some-password    username: exp

每个上下文包含三部分(集群、用户和命名空间),例如, dev-frontend 上下文表明:使用 developer 用户的凭证来访问 development 集群的 frontend 命名空间。

设置当前上下文:

kubectl config --kubeconfig=config-demo use-context dev-frontend

现在当输入 kubectl 命令时,相应动作会应用于 dev-frontend 上下文中所列的集群和命名空间,同时,命令会使用 dev-frontend 上下文中所列用户的凭证。

使用 --minify 参数,来查看与当前上下文相关联的配置信息。

kubectl config --kubeconfig=config-demo view --minify

输出结果展示了 dev-frontend 上下文相关的配置信息:

apiVersion: v1clusters:- cluster:    certificate-authority: fake-ca-file    server: https://1.2.3.4  name: developmentcontexts:- context:    cluster: development    namespace: frontend    user: developer  name: dev-frontendcurrent-context: dev-frontendkind: Configpreferences: {}users:- name: developer  user:    client-certificate: fake-cert-file    client-key: fake-key-file

现在假设用户希望在其它临时用途集群中工作一段时间。

将当前上下文更改为 exp-scratch:

kubectl config --kubeconfig=config-demo use-context exp-scratch

现在用户 kubectl 下达的任何命令都将应用于 scratch 集群的默认命名空间。 同时,命令会使用 exp-scratch 上下文中所列用户的凭证。

查看更新后的当前上下文 exp-scratch 相关的配置:

kubectl config --kubeconfig=config-demo view --minify

最后,假设用户希望在 development 集群中的 storage 命名空间下工作一段时间。

将当前上下文更改为 dev-storage:

kubectl config --kubeconfig=config-demo use-context dev-storage

查看更新后的当前上下文 dev-storage 相关的配置:

kubectl config --kubeconfig=config-demo view --minify

创建第二个配置文件

在 config-exercise 目录中,创建名为 config-demo-2 的文件,其中包含以下内容:

apiVersion: v1kind: Configpreferences: {}contexts:- context:    cluster: development    namespace: ramp    user: developer  name: dev-ramp-up

上述配置文件定义了一个新的上下文,名为 dev-ramp-up。

设置 KUBECONFIG 环境变量

查看是否有名为 KUBECONFIG 的环境变量。 如有,保存 KUBECONFIG 环境变量当前的值,以便稍后恢复。 例如,在 Linux 中:

export  KUBECONFIG_SAVED=$KUBECONFIG

KUBECONFIG 环境变量是配置文件路径的列表,该列表在 Linux 和 Mac 中以冒号分隔,在 Windows 中以分号分隔。 如果有 KUBECONFIG 环境变量,请熟悉列表中的配置文件。

临时添加两条路径到 KUBECONFIG 环境变量中。 例如,在 Linux 中:

export  KUBECONFIG=$KUBECONFIG:config-demo:config-demo-2

在 config-exercise 目录中输入以下命令:

kubectl config view

输出展示了 KUBECONFIG 环境变量中所列举的所有文件合并后的信息。 特别地, 注意合并信息中包含来自 config-demo-2 文件的 dev-ramp-up 上下文和来自 config-demo 文件的三个上下文:

contexts:- context:    cluster: development    namespace: frontend    user: developer  name: dev-frontend- context:    cluster: development    namespace: ramp    user: developer  name: dev-ramp-up- context:    cluster: development    namespace: storage    user: developer  name: dev-storage- context:    cluster: scratch    namespace: default    user: experimenter  name: exp-scratch

更多关于 kubeconfig 文件如何合并的信息,请参考 使用 kubeconfig 文件组织集群访问

探索 $HOME/.kube 目录

如果用户已经拥有一个集群,可以使用 kubectl 与集群进行交互。 那么很可能在 $HOME/.kube 目录下有一个名为 config 的文件。

进入 $HOME/.kube 目录, 看看那里有什么文件。 通常会有一个名为 config 的文件,目录中可能还有其他配置文件。 请简单地熟悉这些文件的内容。

将 $HOME/.kube/config 追加到 KUBECONFIG 环境变量中

如果有 $HOME/.kube/config 文件,并且还未列在 KUBECONFIG 环境变量中, 那么现在将它追加到 KUBECONFIG 环境变量中。 例如,在 Linux 中:

export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config

在配置练习目录中输入以下命令,来查看当前 KUBECONFIG 环境变量中列举的所有文件合并后的配置信息:

kubectl config view

清理

将 KUBECONFIG 环境变量还原为原始值。 例如,在 Linux 中:

export KUBECONFIG=$KUBECONFIG_SAVED

上述就是小编为大家分享的kubectl 中怎么配置多集群访问了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

文件 集群 上下 上下文 配置 用户 变量 环境 信息 目录 空间 命令 两个 内容 工作 开发 输入 三个 凭证 用途 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 博彦科技互联网金融 高科技互联网 新华互联网科技学校 科技企业和互联网企业 互联网为科技 互联网科技的 互联网 的科技创新 新华互联网科技校企合作 老年人脱离互联网科技的作文 上海电发互联网科技有限公司 岳阳华臻互联网科技有限公司 浙南科技城互联网大厦建设工程 内蒙古九一互联网科技 富国互联网科技002692 上海同邻互联网科技有限公司规模 世界互联网科技成果奖 互联网金融运营模式中的金融科技 深圳互联网科技园地址 瑞安市蟠桃会互联网科技有限公司 没上市的科技互联网公司 互联网科技金融 百单互联网科技有限公司 互联网金融中的现代科技 福建科技产业互联网发展 昊天互联网科技有限公司 内蒙古九一互联网科技 科技大学互联网 徐州市互联网科技有限公司 上海同邻互联网科技有限公司规模
0