如何使用curl访问k8s的apiserver

使用TOKEN授权访问api-server在k8s运维场景中比较常见,

apiserver有三种级别的客户端认证方式

1,HTTPS证书认证:基于CA根证书签名的双向数字证书认证方式

2,HTTP Token认证:通过一个Token来识别合法用户

3,HTTP Base认证:通过用户名+密码的认证方式

通常的运维场景使用第二种Token较为方便Token的权限是关联service account,

# kubectl describe secrets admin-token-2q28f -n kube-systemName:         admin-token-2q28f
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: adminkubernetes.io/service-account.uid: 93316ffa-7545-11e9-b617-00163e06992d
Type:  kubernetes.io/service-account-token
Data
====
ca.crt:     1419 bytes
namespace:  11 bytes
token:      eyJhbGciOiJ******

Service Account 的权限来自Clusterrolebinding-->ClusterRole

# kubectl describe serviceaccount admin -n kube-systemName:                admin
Namespace:           kube-system
Labels:              <none>
Annotations:         kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"name":"admin","namespace":"kube-system"}}
Image pull secrets:  <none>
Mountable secrets:   admin-token-2q28f
Tokens:              admin-token-2q28f
Events:              <none>

通过clusterrolebinding 可以拿到ClusterRole对应的rolename

# kubectl get clusterrolebinding admin -o yamlapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"rbac.authorization.k8s.io/v1beta1","kind":"ClusterRoleBinding","metadata":{"annotations":{},"name":"admin"},"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"cluster-admin"},"subjects":[{"kind":"ServiceAccount","name":"admin","namespace":"kube-system"}]}creationTimestamp: 2019-05-13T06:08:49Zname: adminresourceVersion: "1523"selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/adminuid: 93356439-7545-11e9-b617-00163e06992d
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: adminnamespace: kube-system

这个role是什么权限?

# kubectl get clusterrole cluster-admin -o yamlapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:annotations:rbac.authorization.kubernetes.io/autoupdate: "true"creationTimestamp: 2019-05-13T06:01:10Zlabels:kubernetes.io/bootstrapping: rbac-defaultsname: cluster-adminresourceVersion: "55"selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/cluster-adminuid: 817e2b9e-7544-11e9-9766-00163e0e34c8
rules:
- apiGroups:- '*'resources:- '*'verbs:- '*'
- nonResourceURLs:- '*'verbs:- '*'

从clusterrole权限来看,admin关联的权限还是比较大的,正常的集群运维中建议根据自身的真实需要,去定制权限

https://kubernetes.io/docs/reference/access-authn-authz/rbac/

了解完这些,分享一个小技巧,这样后面客户再有curl访问apiserver的需求,我相信你没问题了!

# kubectl describe secrets $(kubectl get secrets -n kube-system |grep admin |cut -f1 -d ' ') -n kube-system |grep -E '^token' |cut -f2 -d':'|tr -d '\t'|tr -d ' 'eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbi0ycTI4ZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjkzMzE2ZmZhLTc1NDUtMTFlOS1iNjE3LTAwMTYzZTA2OTkyZCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTphZG1pbiJ9.EQzj2LsWn2k31m-ksn9GmB1bZTi1Xjw1fnmWFgRKlwhS2QAaVnDXfV_TgUovpq5oWKh7h0gTVaNaK4KKK76yAv6GfMehpOdIO5xHCfQAWVRhla1cwUDC64tz7vJ1zGcx_lz4hKfhdXN1T8FYS0B0hf3h2OloAMfCZTzDjRWz24GVwH-WRTEwY_5tav65GiZzBTsnz1vV7NOcx-Kl8AK2HbowtBYqK05x7oOmp84FiQMwpYU-7g0c03h61zev4lvf0e-HFtqKiByPi8gD-uiVRvE-xayOz5oIESWw2GfhzfNf_uyR7eLplCKUBecVMtwVsBauNaeqU-IIJW5VIHAOxw
# TOKEN=$(kubectl describe secrets $(kubectl get secrets -n kube-system |grep admin |cut -f1 -d ' ') -n kube-system |grep -E '^token' |cut -f2 -d':'|tr -d '\t'|tr -d ' ')# kubectl config view |grep server|cut -f 2- -d ":" | tr -d " "https://192.168.0.130:6443
# APISERVER=$(kubectl config view |grep server|cut -f 2- -d ":" | tr -d " ")

使用curl访问apiserver

# curl -H "Authorization: Bearer $TOKEN" $APISERVER/api  --insecure{"kind": "APIVersions","versions": ["v1"],"serverAddressByClientCIDRs": [{"clientCIDR": "0.0.0.0/0","serverAddress": "192.168.0.130:6443"}]
}


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现

来源 | 阿丸笔记提到MySQL的事务&#xff0c;我相信对MySQL有了解的同学都能聊上几句&#xff0c;无论是面试求职&#xff0c;还是日常开发&#xff0c;MySQL的事务都跟我们息息相关。而事务的ACID&#xff08;即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性D…

Java-封装

// 类 public class Student {// 属性私有private String name; // 名字private int id; // 学号private char sex; // 性别private int age; // 年龄// 提供一些可以操作这个属性的方法// 提供一些 public 的 get \ set 方法// get 获得这个数据public String getName(){r…

一条数据的漫游奇遇记

数据库存储引擎是一个有历史的技术&#xff0c;经过数十年的发展&#xff0c;已经出现很多优秀成熟的产品。阿里巴巴 X-Engine 团队撰写的论文 "X-Engine: An Optimized Storage Engine for Large-scale E-Commerce Transaction Processing"&#xff0c;详细讲述了团…

idea 编辑区设置

文章目录1. 显示行号2. tabs位置3. tabs排序4.tabs数量5.1. 显示行号 2. tabs位置 3. tabs排序 鼠标按住上下拖拽 按字母排序 4.tabs数量 5.

支付宝玉伯:从前端到体验,如何把格局做大

国内的前端行业&#xff0c;是一个群星璀璨&#xff0c;同时又有些纷纷扰扰的圈子。很多初出茅庐的年轻人怀着改变世界的梦想&#xff0c;谁也不服谁。不过&#xff0c;有一些为前端领域做出贡献的拓荒者几乎受到所有人的尊敬&#xff0c;玉伯就是这些拓荒者中的一员。 如今&am…

Java-继承

一个父类可以有多个子类&#xff0c;但是一个子类只能有一个父类 Person // 在java中&#xff0c;所有的类&#xff0c;都直接或者间接继承Object类 // person 人 父类 public class Person {// public > protected > default > private// public// protected --…

2019报告:AI程序员人才需求暴涨35倍!每10个公司就有6个人才缺口

就在最近&#xff0c;斯坦福大学AI研究所发布了《 2019 年 AI 指数报告》&#xff0c;其中一条数字让笔者震惊&#xff1a;58&#xff05; 的受访大公司表示&#xff0c;2019 年至少在一个业务部门采用了 AI那就是说&#xff0c;近半数以上的公司都需要AI人才&#xff01;但是现…

高效代码编辑功能

文章目录1. 行内跳转和选中2. 文件快速切换3. 查看最近查看过的文件4. 打开文件所在文件夹5.导航栏文件切换6. 查找和替换1. 行内跳转和选中 home跳转当前行首 end跳转当前行尾 按住ctrl左右快速按照单词跳转 按住ctrlshrift左右快速选中 2. 文件快速切换 alt左右 3. 查看最…

AnalyticDB for PG 如何作为数据源对接帆软 FineBI

AnalyticDB for PostgreSQL 基于开源数据库 Greenplum 构建&#xff0c;兼容Greenplum 和 PostgreSQL 的语法&#xff0c;接口和生态。本章节介绍如何通过FineBI连接 分析型数据库PostgreSQL版 并进行报表开发。 准备工作 开始使用FineBI之前&#xff0c;用户需要先完成以下准…

AutoScaling 成本优化模式升级--混合实例策略

伸缩组成本优化模式以成本为目标&#xff0c;始终创建最低价的实例&#xff0c;同时&#xff0c;通过多可用区&#xff0c;多实例规格分布&#xff0c;以此来提高服务稳定性。但是&#xff0c;对于成本优势最大化的竞价实例&#xff0c;伸缩组难以防范竞价实例大范围回收可能导…

springboot 通过url访问本地文件

Configurationpublic class MyWebMvcConfigurer extends WebMvcConfigurationSupport {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 访问相对路径registry.addResourceHandler("/assets/**").addResourceLocations("clas…

推出超低功耗数字式热释电传感器,翠展微电子厉害了……

近日&#xff0c;翠展微电子宣布推出了一款针对人体被动红外&#xff08;PIR&#xff09;应用的超低功耗数字芯片M1601。 据了解该方案通过热释电红外传感器以非接触方式检测出人体辐射的信号&#xff0c;并将该信号转换成电信号输入到芯片中进行信号处理。芯片的工作电流极低…

云上的Growth hacking之路,打造产品的增长引擎

增长关乎产品的存亡 增长&#xff01;增长&#xff01;增长&#xff01;业务增长是每一个创业者每天面临的最大问题。无论你的产品是APP&#xff0c;还是web&#xff0c;或者是小程序&#xff0c;只能不断的维持用户的增长&#xff0c;才能向资本市场讲出一个好故事&#xff0…

在容器上构建持续部署及最佳实践初探

作者 | 倚天码农责编| 徐威龙封图| CSDN下载于视觉中国要想理解持续集成和持续部署&#xff0c;先要了解它的部分组成&#xff0c;以及各个组成部分之间的关系。下面这张图是我见过的最简洁、清晰的持续部署和集成的关系图。图源&#xff1a;sonatype.com持续部署如图所示&…

阿里开源!云原生应用自动化引擎 OpenKruise | 直击 KubeCon

在近期开展的 KubeCon China 2019 上&#xff0c;阿里云将陆续为全球用户分享阿里巴巴超大规模云原生落地实践、云原生前沿技术与应用包括 OpenKruise 开源项目、开放云原生应用中心&#xff08;Cloud Native App Hub&#xff09;&#xff0c;同时将重磅发布边缘容器、云原生应…

Java-方法重写

方法重写只针对非静态方法&#xff0c;且不能是 private 类型的 如果是静态方法 // 重写都是方法的重写&#xff0c;和属性无关 public class B {public static void test() {System.out.println("B>test()");} }// 继承 public class A extends B{public stati…

Flowable 数据库表结构 ACT_GE_BYTEARRAY

二进制数据表&#xff0c;存储通用的流程定义和流程资源。&#xff08;act_ge_bytearray&#xff09; 保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据&#xff0c;特别注意类路径部署时候&#xff0c;不要把svn等隐藏文件或者其他与流程无关的文件也…

Express 的使用

以下内容&#xff0c;基于 Express 4.x 版本 Node.js 的 Express Express 估计是那种你第一次接触&#xff0c;就会喜欢上用它的框架。因为它真的非常简单&#xff0c;直接。 在当前版本上&#xff0c;一共才这么几个文件&#xff1a; lib/ ├── application.js ├── e…

数据库设计的 10 个最佳实践

作者 | Emily Williamson译者 | 孙薇&#xff0c;责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;以下为译文&#xff1a;数据库是应用及计算机的核心元素&#xff0c;负责存储运行软件应用所需的一切重要数据。为了保障应用正常运行&#xff0c;总有一…

Flowable 数据库表结构 ACT_GE_PROPERTY

属性数据表(act_ge_property) 属性数据表。存储整个流程引擎级别的数据 字段名称字段描述数据类型主键为空取值说明NAME_名称nvarchar(64)√schema.versionschema.historynext.dbidVALUE_值nvarchar(300)√5.create(5.)REV_乐观锁int√version