kubernetes api介绍

作用: 将各种资源对象的数据都通过该api接口被提交到后端的持久化存储etcd中;

一个api的顶层元素由kind丶apiVersion丶metadata丶spec和status这5部分组成

1.kind

 有三大类别: 对象(object)丶列表(list)丶简单类别(simple)

2.apiVersion

表示API的版本号, 当前版本默认只支持v1

3.metadata : 资源对象的元数据定义,

在kubernetes中的每个资源对象都必须包含3中Metadata
namespace: 对象所属的命名空间
name: 对象的名称
uid: 系统为每个对象都生成的唯一id
其它重要的元数据 labels: 标签
annotations: 用户可定义的注解
resourceVersion: 用于识别资源内部版本号的字符串
creationTimestamp: 系统记录创建对象时的时间戳
deletionTimestamp: 系统记录删除对象时的时间戳
selfLink: 通过api访问资源自身的URL

4.spec: 用户对需要管理的对象进行详细描述的主体部分都在spec, 他会被kubernetes持久化到etcd中保存, 系统通过spec的描述来创建或更新对象, 以达到用户期望的对象运行状态

5.status: 用于记录对象在系统中的当前状态信息

访问api

1.本地监听

kubectl proxy
curl http://127.0.0.1:8001/api



2.网络监听

kubectl proxy --address='192.168.1.52'  --accept-hosts='^*$' --port=8001
启动kubectl proxy,使用网卡IP,从其他机器访问, --accept-hosts='^*$' 表示接受所有源IP,否则会显示不被授权
curl http://192.168.1.52:8001/api/

3.直接访问

kubectl create sa test
kubectl create clusterrolebinding sa-test-cluster-admin --clusterrole='cluster-admin' --serviceaccount=default:test
TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='test')].data.token}"|base64 -d)
curl --header "Authorization: Bearer $TOKEN" --insecure -X GET https://192.168.1.52:6443/api/v1/nodes

4.通过postman访问



注意: 使用sa需要关闭ssl验证

参考文档: https://www.jianshu.com/p/0a5976ce1ce4

访问kubernetes api的更多相关文章

  1. 利用curl命令访问Kubernetes API server

    kubectl 通过访问 Kubernetes API 来执行命令.我们也可以通过对应的TLS key, 使用curl 或是 golang client做同样的事. API 请求必须使用 JSON 格 ...

  2. 在kubernetes 集群内访问k8s API服务

    所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户).基于角色的访问控制(“RBAC”)使用 ...

  3. Kubernetes学习笔记(七):访问Pod元数据与Kubernetes API

    Downward API 我们已经了解到,使用ConfigMap和Secret向应用传递配置数据,这对于运行前预设的数据是可行的.但是对于那些不能预先知道的,就需要使用Downward API. Do ...

  4. 在Openstack上创建并访问Kubernetes集群

    第一部分:创建集群 在Openstack部署Kubernetes集群运行Nginx容器的步骤,其中包括: 利用Murano部署Kubernetes集群 配置Openstack的安全性使Kubernet ...

  5. Gravitational Teleport 开源的通过ssh && kubernetes api 管理linux 服务器集群的网关

    Gravitational Teleport 是一个开源的通过ssh && kubernetes api 管理linux 服务器集群的网关 支持以下功能: 基于证书的身份认证 ssh ...

  6. kubernetes API Server 权限管理实践

    API Server权限控制方式介绍 API Server权限控制分为三种:Authentication(身份认证).Authorization(授权).AdmissionControl(准入控制). ...

  7. 资深专家深度剖析Kubernetes API Server第3章(共3章)

    在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中.在本文中我们将探讨如何扩展API资源. 在一开始的时候,扩展API资源的唯一方法是扩展相关API源代码 ...

  8. 资深专家深度剖析Kubernetes API Server第2章(共3章)

    欢迎来到深入学习Kubernetes API Server的系列文章的第二部分.在上一部分中我们对APIserver总体,相关术语及request请求流进行探讨说明.在本部分文章中,我们主要聚焦于探究 ...

  9. 资深专家深度剖析Kubernetes API Server第1章(共3章)

    欢迎来到深入学习Kubernetes API Server的系列文章,在本系列文章中我们将深入的探究Kubernetes API Server的相关实现.如果你对Kubernetes的内部实现机制比较 ...

随机推荐

  1. C# WindowService 安装和卸载

    安装脚本 install.bat 内容 @echo 安装WindowService%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil ...

  2. 日志备份shell脚本

    脚本注释已经很清楚了,就不再啰嗦了. 算了,还是多说一句吧,脚本设计完成之后,就可以加入计划任务,让电脑帮你打工了. 注:关于计划任务crontab,我会专门写一篇笔记. 最最最后一句, find $ ...

  3. Crunch黑客神器-创造个性字典

    先来看第一个命令: crunch 6 7 123456 -o pass.txt 是什么意思呢?我们打开终端,输入这个命令之后,crunch代表使用crunch这个工具,6代表生成的密码最小是6位数,7 ...

  4. 多线程基础知识---join方法

    join方法的作用 thread.join()方法用于把指定的线程加入到当前线程中,把当前线程的CPU执行时间让给另一个线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继 ...

  5. windows下,给golang编译的exe添加一个图标

    通过go build生成的exe文件,通常是一个默认的图标,发给别人的时候,总觉得像病毒,下面我们来给他加一个好看的图标,让他看起来正经一些. 1.找到一个喜欢的图片. 2.通过工具或是在线工具生成. ...

  6. MySQL中的数据类型 [数值型、字符串型、时间日期型]

    MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...

  7. A/B HDU-1576(简单的数论题)

    Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). Input 数据的第一 ...

  8. iproute2使用及网络名称空间

    创建一个网络名称空间: 相当于创建一个完全隔离的新网络环境,这个环境包括一个独立的网卡空间,路由表,ARP表,ip地址表,iptables,ebtables,等等.总之,与网络有关的组件都是独立的. ...

  9. DVWA之SQL注入演练(low)

    1.设置 把安全等级先调整为low,让自己获得点信心,免得一来就被打脸. 2.测试和分析页面的功能       这里有一个输入框 根据上面的提示,输入用户的id.然后我们输入之后,发现它返回了关于这个 ...

  10. C# 使用Emit实现动态AOP框架 进阶篇之异常处理

    目  录 C# 使用Emit实现动态AOP框架 (一) C# 使用Emit实现动态AOP框架 (二) C# 使用Emit实现动态AOP框架 (三) C# 使用Emit实现动态AOP框架 进阶篇之异常处 ...