九析带你用 curl 轻松完爆 k8s apiserver

网友投稿 462 2022-10-30

九析带你用 curl 轻松完爆 k8s apiserver

目录

1 apiserver 客户端访问方式

2 curl 访问 apiserver

2.1 获取 apiserver 地址

2.2 获取 token

2.2.1 确定 service account

2.2.2 创建 clusterrolebindings 资源

2.2.3 获取 token

2.3 使用 token 访问 apiserver

1 apiserver 客户端访问方式

apiserver 常用的客户端访问方式有两种:

1)数字证书认证:基于 k8s CA 签发的数字证书认证方式

2)TOKEN  认证:基于 TOKEN 识别合法用户的认证方式

本文介绍使用 curl + TOKEN 的认证方式来访问 apiserver。

2 curl 访问 apiserver

命令格式如下:

## -k:允许 curl 不使用数字证书可以访问 网站## -H:自定义 header 内容curl -k -H 'Authorization: Bearer $TOKEN' $APISERVER/api

如上可知,如果想访问 apiserver,只需要获取 token、apiserver 即可。

2.1 获取 apiserver 地址

kubectl config view

kubectl config view | grep -i server | cut -d ':' -f 2-

2.2 获取 token

在获取 token 时,需要介绍一下 k8s RBAC(Role-based Access Control),简单来说,RBAC 就是谁(service account)用什么角色(role)进行绑定(role/clusterrole binding),从而可以访问什么资源。

上面介绍的三个术语(service account、role/clusterrole、rolebinding/clusterrolebinding)中我们并没有发现 token,那么 token 在哪里?答案是 secret 对象中,而 secret 存在于 service account 中。

因此,如果想拥有集群的最高访问权限,最简单的做法就是将某个 service account 绑定到集群管理员即可(cluster-admin)。

2.2.1 确定 service account

这里我们采用 k8s 安装时默认生成的 default 用户。

kubectl get sa

2.2.2 创建 clusterrolebindings 资源

创建 default-clusterrolebings.yaml 资源文件:

apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: default-admin-clusterroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-adminsubjects:- kind: ServiceAccountname: defaultnamespace: default

执行下面命令给 default 用户绑定集群管理员角色:

kubectl apply -f default-clusterrolebings.yaml

2.2.3 获取 token

查找 service account 信息获取 secret。

kubectl get sa default -o yaml

## YOUR_TOKEN 就是你 default 用户的 token 值。需根据个人情况填写。echo 'YOUR_TOKEN' | base64 -d

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java如何实现通过键盘输入一个数组
下一篇:FPGA与ADSP TS201的总线接口设计
相关文章

 发表评论

暂时没有评论,来抢沙发吧~