Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
使用 kubeconfig 文件来组织有关集群、用户、命名空间和身份认证机制的信息。kubectl
命令行工具使用 kubeconfig 文件来查找选择集群所需的信息,并与集群的 API 服务器进行通信。
注意: 用于配置集群访问的文件称为 kubeconfig 文件。这是引用配置文件的通用方法。这并不意味着有一个名为kubeconfig
的文件
默认情况下,kubectl
在 $HOME/.kube
目录下查找名为 config
的文件。您可以通过设置 KUBECONFIG
环境变量或者设置--kubeconfig
参数来指定其他 kubeconfig 文件。
有关创建和指定 kubeconfig 文件的分步说明,请参阅配置对多集群的访问。
假设您有多个集群,并且您的用户和组件以多种方式进行身份认证。比如:
使用 kubeconfig 文件,您可以组织集群、用户和命名空间。您还可以定义上下文,以便在集群和命名空间之间快速轻松地切换。
通过 kubeconfig 文件中的 context 元素,使用简便的名称来对访问参数进行分组。每个上下文都有三个参数:cluster、namespace 和 user。默认情况下,kubectl
命令行工具使用 当前上下文 中的参数与集群进行通信。
选择当前上下文
kubectl config use-context
KUBECONFIG
环境变量包含一个 kubeconfig 文件列表。对于 Linux 和 Mac,列表以冒号分隔。对于 Windows,列表以分号分隔。KUBECONFIG
环境变量不是必要的。如果 KUBECONFIG
环境变量不存在,kubectl
使用默认的 kubeconfig 文件,$HOME/.kube/config
。
如果 KUBECONFIG
环境变量存在,kubectl
使用 KUBECONFIG
环境变量中列举的文件合并后的有效配置。
要查看配置,输入以下命令:
kubectl config view
如前所述,输出可能来自 kubeconfig 文件,也可能是合并多个 kubeconfig 文件的结果。
以下是 kubectl
在合并 kubeconfig 文件时使用的规则。
如果设置了 --kubeconfig
参数,则仅使用指定的文件。不进行合并。此参数只能使用一次。
否则,如果设置了 KUBECONFIG
环境变量,将它用作应合并的文件列表。根据以下规则合并 KUBECONFIG
环境变量中列出的文件:
current-context
。示例:如果两个文件都指定了 red-user
,则仅使用第一个文件的 red-user
中的值。即使第二个文件在 red-user
下有非冲突条目,也要丢弃它们。有关设置 KUBECONFIG
环境变量的示例,请参阅设置 KUBECONFIG 环境变量。
否则,使用默认的 kubeconfig 文件, $HOME/.kube/config
,不进行合并。
根据此链中的第一个匹配确定要使用的上下文。
--context
命令行参数。current-context
。这种场景下允许空上下文。
确定集群和用户。此时,可能有也可能没有上下文。根据此链中的第一个匹配确定集群和用户,这将运行两次:一次用于用户,一次用于集群。
--user
或者 --cluster
。这种场景下用户和集群可以为空。
确定要使用的实际集群信息。此时,可能有也可能没有集群信息。基于此链构建每个集群信息;第一个匹配项会被采用:
--server
、--certificate-authority
和 --insecure-skip-tls-verify
,使用命令行参数。确定要使用的实际用户信息。使用与集群信息相同的规则构建用户信息,但每个用户只允许一种身份认证技术:
--client-certificate
、--client-key
、--username
、--password
和 --token
,使用命令行参数。user
字段。kubeconfig 文件中的文件和路径引用是相对于 kubeconfig 文件的位置。命令行上的文件引用是相当对于当前工作目录的。在 $HOME/.kube/config
中,相对路径按相对路径存储,绝对路径按绝对路径存储。