作用: 将各种资源对象的数据都通过该api接口被提交到后端的持久化存储etcd中; 一个api的顶层元素由kind丶apiVersion丶metadata丶spec和status这5部分组成 1.kind
有三大类别: 对象(object)丶列表(list)丶简单类别(simple)2.apiVersion
表示API的版本号, 当前版本默认只支持v13.metadata : 资源对象的元数据定义,
在kubernetes中的每个资源对象都必须包含3中Metadata namespace: 对象所属的命名空间 name: 对象的名称 uid: 系统为每个对象都生成的唯一id 其它重要的元数据 labels: 标签 annotations: 用户可定义的注解 resourceVersion: 用于识别资源内部版本号的字符串 creationTimestamp: 系统记录创建对象时的时间戳 deletionTimestamp: 系统记录删除对象时的时间戳 selfLink: 通过api访问资源自身的URL4.spec: 用户对需要管理的对象进行详细描述的主体部分都在spec, 他会被kubernetes持久化到etcd中保存, 系统通过spec的描述来创建或更新对象, 以达到用户期望的对象运行状态 5.status: 用于记录对象在系统中的当前状态信息
1.本地监听
kubectl proxy curl http://127.0.0.1:8001/api2.网络监听
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/nodes4.通过postman访问 注意: 使用sa需要关闭ssl验证
参考文档: https://www.jianshu.com/p/0a5976ce1ce4
转载于:https://www.cnblogs.com/lovelinux199075/p/11276528.html