kubeconfig 文件用于组织关于集群、用户、命名空间和认证机制的信息。命令行工具 kubectl 从 kubeconfig 文件中得到它要选择的集群以及跟集群 API server 交互的信息。
注意: 用于配置集群访问信息的文件叫作 kubeconfig 文件,这是一种引用配置文件的通用方式,并不是说它的文件名就是 kubeconfig。
默认情况下,kubectl 会从 $HOME/.kube 目录下查找文件名为 config 的文件。您可以通过设置环境变量 KUBECONFIG 或者通过设置 --kubeconfig 去指定其它 kubeconfig 文件。
支持多个集群、用户和身份验证机制
假设您有几个集群,并且用户和组件以多种方式进行身份验证。例如:
使用 kubeconfig 文件,可以组织您的集群、用户和命名空间的信息。并且,您还可以定义 context,以便快速轻松地在集群和命名空间之间进行切换。
kubeconfig 文件可以包含 context 元素,每个 context 都是一个由(集群、命名空间、用户)描述的三元组。您可以使用 kubectl config use-context 去设置当前的 context。命令行工具 kubectl 与当前 context 中指定的集群和命名空间进行通信,并且使用当前 context 中包含的用户凭证。
环境变量 KUBECONFIG 保存一个 kubeconfig 文件列表。对于 Linux 和 Mac 系统,列表使用冒号将文件名进行分隔;对于 Windows 系统,则以分号分隔。环境变量 KUBECONFIG 不是必需的,如果它不存在,kubectl 就使用默认的 kubeconfig 文件 $HOME/.kube/config。
如果环境变量 KUBECONFIG 存在,那么 kubectl 使用的有效配置,是环境变量 KUBECONFIG 中列出的所有文件融合之后的结果。
要查看您的配置,请输入命令:
kubectl config view
如前所述,输出的内容可能来自单个 kubeconfig 文件,也可能是多个 kubeconfig 文件融合之后的结果。
当配置是由多个 kubeconfig 文件融合而成时,kubectl 使用的规则如下:
kubeconfig 文件中的文件和路径引用,都是相对 kubeconfig 文件存在的。命令行中的文件引用则是相对于当前工作目录。在文件 $HOME/.kube/config 中,相对路径按照相对关系存储,绝对路径按照绝对关系存储。
本文翻译Kubernetes官方文档
本文分享自 kubernetes中文社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!