使用kubeconfig文件组织集群访问
使用kubeconfig文件来组织有关集群、用户、命名空间和身份认证机制的信息。命令行工具使用kubeconfig文件来查找选择集群所需的信息,并与集群的API 服务器 进行通信。
默认情况下,在
$HOME/.kube
目录下查找名为的文件。你可以通过设置
KUBECONFIG
环境变量或者设置
--kubeconfig
参数来指定其他kubeconfig文件。
支持多集群、用户和身份认证机制
假设你有多个集群,并且你的用户和组件以多种方式进行身份认证。比如:
使用kubeconfig文件,你可以组织集群、用户和命名空间。你还可以定义上下文,以便在集群和命名空间之间快速轻松地切换。
上下文(Context)
通过kubeconfig文件中的context元素,使用简便的名称来对访问参数进行分组。每个context都有三个参数:cluster、namespace和user。默认情况下,命令行工具使用当前上下文中的参数与集群进行通信。
选择当前上下文
kubectl config use-context
KUBECONFIG环境变量
KUBECONFIG
环境变量包含一个kubeconfig文件列表。对于Linux和Mac,列表以冒号分隔。对于windows,列表以分号分隔。
KUBECONFIG
环境变量不是必要的。如果
KUBECONFIG
环境变量不存在,使用默认的kubeconfig文件,
$HOME/.kube/config
。
如果
KUBECONFIG
环境变量存在,使用
KUBECONFIG
环境变量中列举的文件合并后的有效配置。
合并kubeconfig文件
要查看配置,输入以下命令:
kubectl config view
如前所述,输出可能来自kubeconfig文件,也可能是合并多个kubeconfig文件的结果。
以下是在合并kubeconfig文件时使用的规则。
否则,如果设置了KUBECONFIG环境变量,将它用作应合并的文件列表。根据以下规则合并KUBECONFIG环境变量中列出的文件:
这种场景下允许空上下文。
这种场景下用户和集群可以为空。
文件引用
kubeconfig文件中的文件和路径引用是相对于kubeconfig文件的位置。命令行上的文件引用是相对于当前工作目录的。在
$HOME/.kube/config
中,相对路径按相对路径存储,绝对路径按绝对路径存储。
代理
你可以在
kubeconfig
文件中设置来为使用代理,例如:
apiVersion: v1kind: Configproxy-url:cluster:name: developmentusers:- name: developercontexts:- context:name: development
发表评论