在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。...以kubectl为例介绍kubeconfig的配置。kubectl只是个go编写的可执行程序,只要为kubectl配置合适的kubeconfig,就可以在集群中的任意节点使用。...kubectl默认会从$HOME/.kube目录下查找文件名为 config 的文件,也可以通过设置环境变量 KUBECONFIG 或者通过设置 --kubeconfig 去指定其它 kubeconfig...总之kubeconfig就是为访问集群所作的配置。...中;--server则表示该集群的kube-apiserver地址 生成的kubeconfig 被保存到 ~/.kube/config 文件 用户参数 本段主要设置用户的相关信息,主要是用户证书。
212785087522004927" user: client-certificate-data: client-key-data: 通过export更改默认集群配置: $ export KUBECONFIG...通过context进行集群切换 把要切换的所有config文件添加到KUBECONFIG环境变量中 $ export KUBECONFIG=$HOME/.kube/config:$HOME/.kube
前言 该项目脱胎于 mergeKubeConfig[1] 项目,最早写该项目的目的是在一堆杂乱无章的 kubeconfig 中自由的切换。...随着需要操作的 Kubernetes 集群越来越多,在不同的集群之间切换也越来越麻烦,而操作 Kubernetes 集群的本质不过是通过 kubeconfig 访问 Kubernetes 集群的 API...Server,以操作 Kubernetes 的各种资源,而 kubeconfig 不过是一个 yaml 文件,用来保存访问集群的密钥,最早的 mergeKubeConfig[1] 不过是一个操作 yaml...操作 kubeconfig kubecm[2] 可以实现 kubeconfig 的查看、添加、删除、合并、重命名和切换 查看 # 查看 $HOME/.kube/config 中所有的 context kubecm...,该方式不会覆盖源 kubeconfig,只会在当前目录中生成一个 config.yaml 文件 kubecm merge -f test # 添加 -c 会覆盖源 kubeconfig kubecm
我们是通过jumpServer + K8s RBAC来进行权限控制的;大致流程如下,今天我们主要来讲解一下如何生成对应权限的Kubeconfig文件 先决条件 1,K8s系统需要启用RBAC访问控制;...是如何进行授权的;在这个地方我们就不过多的介绍;给出官方文档地址自行学习 使用 RBAC 鉴权 3,你能使用具有admin权限的用户操作以下操作 4,掌握K8s内的用户认证,自行学习 用户认证 三种姿势创建Kubeconfig...ApiServerEndpoints} \ --certificate-authority=/etc/kubernetes/pki/ca.crt \ --embed-certs=true \ --kubeconfig...--client-certificate=${UserName}.crt \ --client-key=${UserName}.key \ --embed-certs=true \ --kubeconfig.../${UserName}.config #将用户绑定到上下文上 kubectl config use-context ${UserName}@${ClusterName} \ --kubeconfig
用于配置集群访问信息的文件叫作 kubeconfig 文件,在开启了 TLS 的集群中,每次与集群交互时都需要身份认证,生产环境一般使用证书进行认证,其认证所需要的信息会放在 kubeconfig 文件中...此外,k8s 的组件都可以使用 kubeconfig 连接 apiserver,client-go 、operator、helm 等其他组件也使用 kubeconfig 访问 apiserver。...未指定的值或在加载的 kubeconfig 中没有相应条目的命名值将被替换为默认值。 加载和合并 kubeconfig 文件的规则很简单,但有很多,具体可以查看加载和合并kubeconfig规则。...或者通过设置去指定其它 kubeconfig 文件 # 设置 KUBECONFIG 的环境变量 export KUBECONFIG=/etc/kubernetes/kubeconfig/kubelet.kubeconfig...# 指定 kubeconfig 文件 kubectl get node --kubeconfig=/etc/kubernetes/kubeconfig/kubelet.kubeconfig # 使用不同的
生产 kubeconfig kubeconfig 模版如下: apiVersion: v1 kind: Config users: - name: well user: token: <token...echo echo echo "kubeconfig 文件已经保存为 ./$USER.config,并已经拷贝至您的剪切板中了。"...echo "当前 kubeconfig 仅允许访问命名空间 $USER 下的特定资源。"...echo echo "执行如下的命令试试看:" echo "kubectl get po --kubeconfig=..../$USER.config" echo "kubectl get secret --kubeconfig=.
您可以通过设置环境变量 KUBECONFIG 或者通过设置 --kubeconfig 去指定其它 kubeconfig 文件。...环境变量 KUBECONFIG 环境变量 KUBECONFIG 保存一个 kubeconfig 文件列表。...融合 kubeconfig 文件 要查看您的配置,请输入命令: kubectl config view 如前所述,输出的内容可能来自单个 kubeconfig 文件,也可能是多个 kubeconfig...根据如下规则融合环境变量 KUBECONFIG 中列出的文件: 设置环境变量 KUBECONFIG 的例子,请查看 设置环境变量 KUBECONFIG。...如果 --kubeconfig 和环境变量 KUBECONFIG 都没有设置,则使用默认的 kubeconfig 文件:$HOME/.kube/config,不需要融合。 忽略空的文件名。
当我们的集群有多个时候,就需要合并多个集群kubeconfig,然后用context来切换不同集群。...现在tke集群都是用每个账号的uin生成对应的kubeconfig来通过rbac鉴权,也就说你不同集群,对应的kubeconfig的user和name是一致的,都是子账号的uin,那么这里合并kubeconfig...image.png image.png image.png 1.2 验证kubeconfig权限 这里我们先单独验证下这2个kubeconfig是否有操作集群的权限。...1.3 合并kubeconfig 下面我们来合并下2个tke集群的kubeconfig,合并后会生成$HOME/.kube/config # KUBECONFIG=b3mg1p92.config:jmdg96ew.config...其实方案很简答,我们只要修改下集群kubeconfig的user和name区分开来即可。
BOOTSTRAP_TOKEN} \ --kubeconfig=bootstrap.kubeconfig # # 设置上下文参数 # kubectl config set-context default...\ --cluster=kubernetes \ --user=kubelet-bootstrap \ --kubeconfig=bootstrap.kubeconfig # # 设置默认上下文...证书写入到生成的 bootstrap.kubeconfig 文件中; 设置客户端认证参数时没有指定秘钥和证书,后续由 kube-apiserver 自动生成; 创建 kube-proxy kubeconfig...文件 将两个 kubeconfig 文件分发到所有 Node 机器的 /etc/kubernetes/ 目录 # cp bootstrap.kubeconfig kube-proxy.kubeconfig.../etc/kubernetes/ # scp bootstrap.kubeconfig kube-proxy.kubeconfig xxxx:/etc/kubernetes/
创建用户认证授权的 kubeconfig 文件 当我们安装好集群后,如果想要把 kubectl 命令交给用户使用,就不得不对用户的身份进行认证和对其权限做出限制。...=/etc/kubernetes/cby.kubeconfig kubectl config set-context cby@kubernetes \ --cluster=kubernetes...\ --user=cby \ --kubeconfig=/etc/kubernetes/cby.kubeconfig kubectl config use-context cby...@kubernetes --kubeconfig=/etc/kubernetes/cby.kubeconfig 添加用户并将配置其用户 useradd cby su - cby mkdir .kube.../ exit cp /etc/kubernetes/cby.kubeconfig /home/cby/.kube/config chown cby.cby /home/cby/.kube/config
本文档介绍创建 kubeconfig 文件 下载 kubectl $ wget https://dl.k8s.io/v1.6.0/kubernetes-client-linux-amd64.tar.gz...kubernetes-client-linux-amd64.tar.gz $ cp kubernetes/client/bin/kube* /usr/bin/ $ chmod a+x /usr/bin/kube* 创建 kubectl kubeconfig...cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,该 Role 授予了调用kube-apiserver 相关 API 的权限; 生成的 kubeconfig...被保存到 ~/.kube/config 文件; 把~/.kube/config文件复制到 /etc/kubernetes 下并改名成kubelet.kubeconfig用于kubelet向apiserver...请求认证 把~/.kube/config推送到各节点的~/.kube目录下,把/etc/kubernetes/kubelet.kubeconfig推送到各节点的/etc/kubernetes/目录下
背景 做为一个k8s的学习或者使用者,避免不了会操作不同的k8s集群,每次操作不同集群的时候,可能都会使用--kubeconfig指定要操作集群的配置文件,这样显得格外的麻烦,我使用过一段时间的alias...,通过alias做命令别名,但是依旧不是那么清爽,前段时间看到一个kubecm[1]工具,简洁高效,解决了多集群切换以及kubeconfig文件内容管理的问题。...到 $HOME/.kube/config 中 completion :命令行自动补全功能 delete:删除已有的 context ,提供交互式和指定删除两种方式 merge:将指定目录中的 kubeconfig...合并为一个 kubeconfig 文件 rename:重名指定的 context,提供交互式和指定重命名两种方式 switch:交互式切换 context 命令行自动补全 kubecm 提供了和 kubectl...操作 kubeconfig 你可以通过kubecm --help查看有哪些命令行选项,选项不多,都是见名知意的那种,这里不列举了。 ? 效果图 kubecm list ?
tke集群默认会给每个子账号提供kubeconfig,子用户控制台就能获取到,为什么这里还要通过token生成tke的kubeconfig给子用户使用?...token来给不同用户生成kubeconfig,然后提供使用。...图片3.2 控制台kubeconfig获取一般控制台获取集群的kubeconfig,需要开启内网或者公网访问才会提供对应的kubeconfig,kubeconfig里面有ca证书可以直接从kubeconfig...生成kubeconfig上面我们获取了集群token,apiserver访问地址,还有集群的ca证书,接下来我们可以生成kubeconfig了。...kubeconfig=xxx.kubeconfig执行完上面的步骤后,会在当前目录生成一个xxx.kubeconfig文件,后面就可以通过这个kubeconfig访问集群了。
kubectl默认会从$HOME/.kube目录下查找文件名为 config 的文件,也能通过设置环境变量 KUBECONFIG 或者通过设置去指定其它 kubeconfig 文件。...kubeconfig就是为访问集群所作的配置。...命令简介 kubectl config SUBCOMMAND 选项 --kubeconfig="": 使用特定的配置文件。...--cluster="": 指定使用的kubeconfig配置文件中的集群名。 --context="": 指定使用的kubeconfig配置文件中的环境名。...默认生成的kubeconfig 被保存到 ~/.kube/config 文件
tocken kubectl describe secret -n kube-system dashboard-admin-token-l7kpn 在dashboard后台使用tocken方式登录即可 生成kubeconfig...jsonpath={.data.token}|base64 -d) kubectl config set-cluster kubernetes --server=192.168.0.25:6443 --kubeconfig...=/root/dashbord-admin.conf kubectl config set-credentials dashboard-admin --token=$DASH_TOCKEN --kubeconfig...kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig...生成的dashbord-admin.conf即可用于登录dashboard 参考:kubeconfig的用法及生成配置文件
cannot list resource "pods" in API group "" in the namespace "default" 可以看到,用户能正常访问集群,并设置了正确的权限,下面例子创建kubeconfig...resource=nodes # kubectl create clusterrolebinding csr-user1 --clusterrole=csr-user1 --user=csr-user1 创建kubeconfig...null name: csr-user1 namespace: default current-context: csr-user1 EOF # kubectl config --kubeconfig...--client-certificate=csr-user1.crt --client-key=csr-user1.key --embed-certs=true # kubectl config --kubeconfig...: User "csr-user1" cannot list resource "pods" in API group "" in the namespace "default" 可以看到,使用创建的kubeconfig
kubectl 对多个集群进行管理和操作,就在 kubeconfig 中配置多个集群的信息即可,通常可以通过编辑 kubeconfig 文件或执行一堆 kubectl config 的命令来实现。...一般情况下,Kubernetes 集群在安装或创建好之后,都会生成 kubeconfig 文件,如何简单高效的将这些 kubeconfig 合并以便让我们通过一个 kubeconfig 就能方便的管理多集群呢...我们可以借助 kubecm 这个工具,本文将介绍如何利用 kubecm 来实现多集群的 kubeconfig 高效管理。...使用 kubecm 添加访问凭证到 kubeconfig 首先拿到你集群的 kubeconfig 文件,将其重命名为你想指定的 context 名称,然后通过下面的命令将 kubeconfig 信息合并到...~/.kube/config: kubecm add -f [1.png] 提示是否覆盖默认 kubeconfig 文件,方向键选择 True 然后回车即可。
那么,我们如何将多个 kubeconfig 文件合并为一个呢?...以下是步骤: 备份是个好习惯 cp $HOME/.kube/config $HOME/.kube/config-backup 设置KUBECONFIG环境变量 KUBECONFIG环境变量是配置文件的路径列表...path/cluster2 如果当前目录下有很多 kubeconfig 文件,可以使用以下命令快速设置KUBECONFIG 环境变量。...文件合并为一个 kubectl config view --flatten > all-in-one-kubeconfig.yaml 验证它是否有效 显示在 kubeconfig 中定义的所有集群:...kubectl config get-contexts --kubeconfig=$HOME/.kube/all-in-one-kubeconfig.yaml 用新合并的配置文件替换旧配置文件 mv
虽然官方文档中有介绍多个 Kubeconfig 文件合并成一个 Kubeconfig,但是对于一些新手来说,看得不是很明白。...本文介绍 Kubeconfig 文件结构,并推荐一个工具自动合并 Kubeconfig。...Kubeconfig 用途 kubectl 命令行工具通过 kubeconfig 文件的配置来选择集群以及集群API Server通信的所有信息。...默认情况下 kubectl 读取 $HOME/.kube/config 文件,也可以通过设置环境变量 KUBECONFIG 或者 --kubeconfig 指定其他的配置文件。...文件合并 把需要合并的 Kubeconfig 文件放到 all_kubeconfig 目录下,执行命令后会在当前路径下产生一个新的 kubeconfig 文件 $ kubecm merge -f all_kubeconfig
以下是合并多个 kubeconfig 文件的步骤:步骤 1: 创建一个新的 kubeconfig 文件首先,创建一个新的空白 kubeconfig 文件,用于存储合并后的kubeconfig 配置。...可以使用以下命令创建一个新的 kubeconfig 文件:touch merged-kubeconfig步骤 2: 合并 kubeconfig 文件接下来,将每个 kubeconfig 文件的内容合并到新创建的...假设我们有两个 kubeconfig 文件,分别为 kubeconfig1 和 kubeconfig2。...执行以下命令将它们合并到 merged-kubeconfig 文件中:KUBECONFIG=kubeconfig1:kubeconfig2 kubectl config view --flatten >...merged-kubeconfig这里使用了 KUBECONFIG 环境变量来指定要合并的 kubeconfig 文件,用冒号分隔多个文件路径。
领取专属 10元无门槛券
手把手带您无忧上云