使用kubeconfig文件来组织关于集群,用户,名称空间和身份验证机制的信息。 kubectl命令行工具使用kubeconfig文件来查找选择群集并与群集的API服务器进行通信所需的信息。
默认情况下 kubectl
使用的配置文件名称是在$HOME/.kube
目录下 config
文件,可以通过设置环境变量KUBECONFIG
或者--kubeconfig
指定其他的配置文件
详细配置内容信息请参考configure-access-multiple-clusters
支持多个群集,用户和认证机制
假设您有多个群集,并且您的用户和组件以各种方式进行身份验证。 例如:
使用kubeconfig文件,您可以组织您的群集,用户和名称空间。 您还可以定义上下文以快速轻松地在群集和名称空间之间切换。
上下文(Context)
kubeconfig文件中的上下文元素用于以方便的名称对访问参数进行分组。 每个上下文有三个参数:集群,命名空间和用户。 默认情况下,kubectl命令行工具使用当前上下文中的参数与集群进行通信。
可以使用以下命令设置当前的上下文
kubectl config use-context
环境变量KUBECONFIG
如果环境变量KUBECONFIG存在,那么就使用该环境变量KUBECONFIG里面的值,如果不存在该环境变量KUBECONFIG,那么默认就是使用$HOME/.kube/config
文件
整合配置文件
查看配置内容
kubectl config view
以下是kubectl在合并kubeconfig文件时使用的规则:
一. 如果设置了--kubeconfig
标志,则只使用指定的文件。 不要合并。 该标志只允许有一个实例。
二. 如果设置了KUBECONFIG
环境变量,则将其用作应该合并的文件列表。 根据以下规则合并KUBECONFIG
环境变量中列出的文件:
切勿更改数值或映射键。
root@fabric-cli config-exercise]# kubectl config --help
Modify kubeconfig files using subcommands like "kubectl config set
current-context my-context"
The loading order follows these rules:
1. If the --kubeconfig flag is set, then only that file is loaded. The flag
may only be set once and no merging takes place.
2. If $KUBECONFIG environment variable is set, then it is used a list of paths
(normal path delimitting rules for your system). These paths are merged. When
a value is modified, it is modified in the file that defines the stanza. When a
value is created, it is created in the first file that exists. If no files in
the chain exist, then it creates the last file in the list.
3. Otherwise, ${HOME}/.kube/config is used and no merging takes place.
Available Commands:
current-context 显示当前的上下文
delete-cluster 删除 kubeconfig 文件中指定的集群
delete-context 删除 kubeconfig 文件中指定的上下文
get-clusters 显示 kubeconfig 文件中定义的集群
get-contexts 描述一个或多个上下文
rename-context Renames a context from the kubeconfig file.
set 设置 kubeconfig 文件中的一个单个值
set-cluster 设置 kubeconfig 文件中的一个集群条目
set-context 设置 kubeconfig 文件中的一个上下文条目
set-credentials 设置 kubeconfig 文件中的一个用户条目
unset 取消设置 kubeconfig 文件中的一个单个值
use-context 设置 kubeconfig 文件中的当前上下文
view 显示合并的 kubeconfig 配置或一个指定的 kubeconfig
文件
Usage:
kubectl config SUBCOMMAND [options]
Use "kubectl --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all
commands).
指定上下文
如果退出,请使用–context命令行标志。
kubectl config --context xxx
合并的kubeconfig文件中的current-context。
kubectl config current-context
定义集群
kubectl config --cluster
定义用户
kubectl config --user
确定集群信息,使用以下参数
--server, --certificate-authority, --insecure-skip-tls-verify
确定用户信息,使用以下参数
--client-certificate, --client-key, --username, --password, --token
这边博客纯粹是翻译,还没经过处理,详情请前往organize-cluster-access-kubeconfig
参考
organize-cluster-access-kubeconfig