config 子命令
概述
config 子命令用于控制 User Account(KubeConfig) 的 KubeConfig 文件
Syntax(语法)
**kubectl config SUBCOMMAND [options]
SUBCOMMAND 包括:
- current-context # 显示当前上下文 Displays the current-context
- delete-cluster # Delete the specified cluster from the kubeconfig
- delete-context # 从 kubeconfig 文件中删除指定的上下文
- get-clusters # 显示在 kubeconfig 中已经定义的 cluster 信息。Display clusters defined in the kubeconfig
- get-contexts # 显示在 kubeconfig 中的上下文列表。每行的信息表示包括以*表示当前使用的 context,context 名称,cluster 与 authinfo(认证信息即用户名),名称空间
- rename-context# Renames a context from the kubeconfig file.
- set # 在 KubeConfig 文件中设置一个单独的值。Sets an individual value in a kubeconfig file
- set-cluster # 在 kubeconfig 中设定集群条目。
- set-context# 在 kubeconfig 中设定上下文条目。Sets a context entry in kubeconfig
- set-credentials # 在 kubeconfig 中设定用户凭证。
- unset# 取消在 KubeConfig 文件中设置的一个单独的值。Unsets an individual value in a kubeconfig file
- use-context# 在 kubeconfig 中设定当前上下文(即使用哪个用户操作客户端)。
- view# 显示已经合并的 KubeConfig 文件或一个指定的 KubeConfig 文件。Display merged kubeconfig settings or a specified kubeconfig file。
OPTIONS
- –kubeconfig=/PATH/FILE # 指明要操作的 KubeConfig 文件
SubCommand(子命令)
set-cluster # 在 kubeconfig 文件中设置一个集群条目。Sets a cluster entry in kubeconfig
kubectl config set-cluster NAME [–server=server] [–certificate-authority=PATH/TO/CERTIFICATE/AUTHORITY] [–insecure-skip-tls-verify=true] [OPTIONS] #
OPTIONS
- –embed-certs={false|true} # 将–certificate-authority 中指定的证书嵌入 kubeconfig 文件中。i.e.将证书内容使用 base64 编码后存入,默认为 false,即不读取内容进行编码,而是直接将路径写到 kubeconfig 文件中
EXAMPLE
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true \
--server=192.168.10.10:6443 \
--kubeconfig=./lch-config # 为 lch-config 的 kubeconfig 文件设定集群信息,指定证书为/etc/kubernetes/pki/ca.crt,开启嵌入式认证,指定集群 api-server 的 ip 和 port。
set-context # 设定上下文,确立 user 与 cluster 的绑定关系与上下文的 name
kubectl config set-context [NAME | –current] [–cluster=cluster_nickname] [–user=user_nickname] [–namespace=namespace] [options]
EXAMPLE
- kubectl config set-context lch@kubernetes –cluster=kubernetes –user=lch
- kubectl config set-context dashboard-admin@kubernetes –cluster=kubernetes –user=dashboard-admin –kubeconfig=/root/dashbord-admin.conf #
set-credentials # 在 kubeconfig 中设置凭证,即设置用户的认证,以便让 kubernetes 集群认识到该用户。i.e.创建 User Account
kubectl config set-credentials NAME [–client-certificate=Path/to/certfile] [–client-key=Path/to/keyfile] [–token=bearer_token] [–username=BasicUser] [–password=BasicPassword] [–auth-provider=provider_name] [–auth-provider-arg=key=value] [OPTIONS]
通过证书、token、用户密码或者认证提供者键值对来设定一个用户凭证。credential 的意思就是“一个人的背景的资格,成就,个人品质或方面,通常用于表明他们适合某事”。在这里就是这个 user 的证书或者 token 等以便在与集群交互时进行验证
OPTIONS
- –embed-certs=ture|false # 在 kubeconfig 中嵌入证书/私钥,即变成非明文的方式储存
EXAMPLE
通过使用证书与私钥的方式设定名为 lch 的用户
kubectl config set-credentials lch --client-certificate=./lch.crt --client-key=./lch.key --embed-certs
使用 ${DASH_TOKEN} 中的 token 来作为 user 的凭证
kubectl config set-credentials dashboard-admin --token=$DASH_TOKEN --kubeconfig=/root/dashbord-admin.conf
use-context # 设置当前 current-context 字段(当前所用的使用的上下文)
kubectl config use-context CONTEXT_NAME [OPTIONS] EXAMPLE
- kubectl config use-context dashboard-admin@kubernetes –kubeconfig=/root/dashbord-admin.conf #
view # 显示一个 kubeconfig 文件的信息
kubectl config view [FLAGS] [OPTIONS]
~]# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://k8s-api.bj-net.ehualu.local:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
OPTIONS
- –raw # 显示原始字节数据
- –minify # 只显示当前 context 的信息。
EXAMPLE
- 显示用户名为 user-2c2f24ck5f 的证书数据
- kubectl config view -o jsonpath=’{.users[?(@.name == “user-2c2f24ck5f”)].user.client-certificate-data}’ –raw
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.