树叶云kubernetes教程:Kubernetes 使用 kubeconfig 文件组织集群访问

使用 kubeconfig 文件组织集群访问

使用 kubeconfig 文件来组织有关集群、用户、命名空间和身份认证机制的信息。 ​kubectl ​命令行工具使用 kubeconfig 文件来查找选择集群所需的信息,并与集群的 API 服务器进行通信。

Note: 用于配置集群访问的文件称为“kubeconfig 文件”。 这是引用配置文件的通用方法,并不意味着有一个名为 ​kubeconfig ​的文件

Warning: 只使用来源可靠的 kubeconfig 文件。使用特制的 kubeconfig 文件可能会导致恶意代码执行或文件暴露。 如果必须使用不受信任的 kubeconfig 文件,请首先像检查 shell 脚本一样仔细检查它。

默认情况下,​kubectl ​在 ​$HOME/.kube​ 目录下查找名为 ​config ​的文件。 你可以通过设置 ​KUBECONFIG ​环境变量或者设置 ​--kubeconfig​参数来指定其他 kubeconfig 文件。

支持多集群、用户和身份认证机制

假设你有多个集群,并且你的用户和组件以多种方式进行身份认证。比如:

  • 正在运行的 kubelet 可能使用证书在进行认证。
  • 用户可能通过令牌进行认证。
  • 管理员可能拥有多个证书集合提供给各用户。

使用 kubeconfig 文件,你可以组织集群、用户和命名空间。你还可以定义上下文,以便在集群和命名空间之间快速轻松地切换。

上下文(Context)

通过 kubeconfig 文件中的 context 元素,使用简便的名称来对访问参数进行分组。 每个 context 都有三个参数:cluster、namespace 和 user。 默认情况下,​kubectl ​命令行工具使用 当前上下文 中的参数与集群进行通信。

选择当前上下文

kubectl config use-context

KUBECONFIG 环境变量

​KUBECONFIG ​环境变量包含一个 kubeconfig 文件列表。 对于 Linux 和 Mac,列表以冒号分隔。对于 Windows,列表以分号分隔。 ​KUBECONFIG ​环境变量不是必要的。 如果 ​KUBECONFIG ​环境变量不存在,​kubectl ​使用默认的 kubeconfig 文件,​$HOME/.kube/config​。

如果 ​KUBECONFIG ​环境变量存在,​kubectl ​使用 ​KUBECONFIG ​环境变量中列举的文件合并后的有效配置。

合并 kubeconfig 文件

要查看配置,输入以下命令:

kubectl config view

如前所述,输出可能来自 kubeconfig 文件,也可能是合并多个 kubeconfig 文件的结果。

以下是 ​kubectl ​在合并 kubeconfig 文件时使用的规则。

  1. 如果设置了 –kubeconfig 参数,则仅使用指定的文件。不进行合并。此参数只能使用一次。
  2. 否则,如果设置了 KUBECONFIG 环境变量,将它用作应合并的文件列表。根据以下规则合并 KUBECONFIG 环境变量中列出的文件:

    • 忽略空文件名。
    • 对于内容无法反序列化的文件,产生错误信息。
    • 第一个设置特定值或者映射键的文件将生效。
    • 永远不会更改值或者映射键。示例:保留第一个文件的上下文以设置 current-context。示例:如果两个文件都指定了 red-user,则仅使用第一个文件的 red-user 中的值。即使第二个文件在 red-user 下有非冲突条目,也要丢弃它们。
    • 否则,使用默认的 kubeconfig 文件, ​$HOME/.kube/config​,不进行合并。

  3. 根据此链中的第一个匹配确定要使用的上下文。
    • 如果存在,使用 ​--context​ 命令行参数。
    • 使用合并的 kubeconfig 文件中的 ​current-context​。

    这种场景下允许空上下文。

  4. 确定集群和用户。此时,可能有也可能没有上下文。根据此链中的第一个匹配确定集群和用户,这将运行两次:一次用于用户,一次用于集群。
    • 如果存在,使用命令行参数:​--user​ 或者 ​--cluster​。
    • 如果上下文非空,从上下文中获取用户或集群。

    这种场景下用户和集群可以为空。

  5. 确定要使用的实际集群信息。此时,可能有也可能没有集群信息。基于此链构建每个集群信息;第一个匹配项会被采用:
    • 如果存在:​--server​、​--certificate-authority​ 和 ​--insecure-skip-tls-verify​,使用命令行参数。
    • 如果合并的 kubeconfig 文件中存在集群信息属性,则使用它们。
    • 如果没有 server 配置,则配置无效。
  6. 确定要使用的实际用户信息。使用与集群信息相同的规则构建用户信息,但每个用户只允许一种身份认证技术:
    • 如果存在:​--client-certificate​、​--client-key​、​--username​、​--password​ 和 ​--token​,使用命令行参数。
    • 使用合并的 kubeconfig 文件中的 ​user ​字段。
    • 如果存在两种冲突技术,则配置无效。
  7. 对于仍然缺失的任何信息,使用其对应的默认值,并可能提示输入身份认证信息。

文件引用

kubeconfig 文件中的文件和路径引用是相对于 kubeconfig 文件的位置。 命令行上的文件引用是相对于当前工作目录的。 在 ​$HOME/.kube/config​ 中,相对路径按相对路径存储,绝对路径按绝对路径存储。

代理

你可以在 ​kubeconfig​ 文件中设置 ​proxy-url​ 来为 ​kubectl ​使用代理,例如:

apiVersion: v1
kind: Config

proxy-url: https://proxy.host:3128

clusters:
- cluster:
  name: development

users:
- name: developer

contexts:
- context:
  name: development

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/189472.html<

赞 (0)
管理的头像管理
上一篇2025-03-31 05:23
下一篇 2025-03-31 05:24

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注