kubectl config 命令用来管理kubeconfig文件。
一、查找要操作的kubeconfig 文件顺序
1、如果使用--kubeconfig选项,则指定的文件为要操作的文件。此选项只能被设置一次,并且不会合并其他文件。
2、如果设置了$KUBECONFIG环境变量,将同时使用此环境变量指定的所有文件列表(使用操作系统默认的顺序),所有文件将被合并。
当修改一个值时,将修改设置了该值的文件。
当创建一个值时,将在列表的首个文件创建该值。
若列表中所有的文件都不存在,将创建列表中的最后一个文件。
3、如果前两项都没有设置,将使用 ${HOME}/.kube/config,并且不会合并其他文件。
二、继承自父命令的选项:
–alsologtostderr[=false]: 同时输出日志到标准错误控制台和文件。
–api-version=””: 和服务端交互使用的API版本。
–certificate-authority=””: 用以进行认证授权的.cert文件路径。
–client-certificate=””: TLS使用的客户端证书路径。
–client-key=””: TLS使用的客户端密钥路径。
–cluster=””: 指定使用的kubeconfig配置文件中的集群名。
–context=””: 指定使用的kubeconfig配置文件中的环境名。
–insecure-skip-tls-verify[=false]: 如果为true,将不会检查服务器凭证的有效性,这会导致你的HTTPS链接变得不安全。
–kubeconfig=””: 命令行请求使用的配置文件路径。
–log-backtrace-at=:0: 当日志长度超过定义的行数时,忽略堆栈信息。
–log-dir=””: 如果不为空,将日志文件写入此目录。
–log-flush-frequency=5s: 刷新日志的最大时间间隔。
–logtostderr[=true]: 输出日志到标准错误控制台,不输出到文件。
–match-server-version[=false]: 要求服务端和客户端版本匹配。
–namespace=””: 如果不为空,命令将使用此namespace。
–password=””: API Server进行简单认证使用的密码。
-s, –server=””: Kubernetes API Server的地址和端口号。
–stderrthreshold=2: 高于此级别的日志将被输出到错误控制台。
–token=””: 认证到API Server使用的令牌。
–user=””: 指定使用的kubeconfig配置文件中的用户名。
–username=””: API Server进行简单认证使用的用户名。
–v=0: 指定输出日志的级别。
–vmodule=: 指定输出日志的模块,格式如下:pattern=N,使用逗号分隔。
三、kubectl config 配置示例
3.1、查看当前的配置信息
# kubectl config view
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
配置项说明
clusters :配置要访问的kubernetes集群
contexts :配置访问kubernetes集群的具体上下文环境
current-context: 配置当前使用的上下文环境
users: 配置访问的用户信息,用户名以及证书信息
3.2、配置访问的集群信息
# kubectl config set-cluster k8s-cluster1 \
--server=https://10.25.72.62:6443 \
--certificate-authority=/etc/kubernetes/ssl/ca.pem \
--embed-certs=true
3.3、设置访问集群环境上下文信息
# kubectl config set-context kube-system-ctx \
--cluster=k8s-cluster1 \
--user=kubectl \
--namespace=kube-system
3.4、设置用户信息
# kubectl config set-credentials kubectl-credential \
--client-key=/etc/kubernetes/ssl/kubectl-key.pem \
--client-certificate=/etc/kubernetes/ssl/kubectl.pem \
--user=kubectl \
--embed-certs=true
3.5、使用上下文Context
# kubectl config use-context kube-system-ctx
3.6、清理config配置项
kubectl config unset [clusters | contexts | users | current-context]