k8s API

98 阅读2分钟

API的定义

Kubernetes API是通过HTTP提供的基于资源 (RESTful) 的编程接口。它是Kubernetes控制平面的核心部分,由API服务器暴露HTTP API以供使用。 从本质上讲,它就像是Kubernetes这个庞大系统对外提供服务的窗口,通过这个窗口,用户、集群内部的不同组件以及外部的相关组件都能够进行交互通信

官网: kubernetes.io/zh-cn/docs/…

API的特点和构成

Kubernetes 控制面的核心是API服务器,API 服务器负责提供 HTTP API,负责处理接受请求的工作,以供用户、集群中的不同部分和集群外部组件相互通信。API 服务器是 Kubernetes 控制平面的前端

Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平扩缩,也就是说,它可通过部署多个实例来进行扩缩。 你可以运行 kube-apiserver 的多个实例,并在这些实例之间平衡流量

支持通过标准的HTTP动词(POST、PUT、PATCH、DELETE、GET)来检索、创建、更新和删除这些主要资源

API的使用

查看集群支持的API类型

# kubectl api-resources

image.png

大部分操作都可以通过 kubectl 命令行接口或类似 kubeadm 这类命令行工具来执行, 这些工具在背后也是调用 API。

你也可以使用 REST 调用来访问这些 API

使用API得几种方式

一:配置使用kubectl

方式1:

获取kubeconfig image.png

执行

    # kubectl get node

方式2:

获取kubeconfig:
K8S集群的配置文件存储在master节点上的~/.kube/config文件中,将此文件拷贝到本地(例如拷贝为clusterkubeconfig),然后执行如下指令:

    # kubectl --kubeconfig=clusterkubeconfig get node

二:直接使用restapi方式

curl -H "Authorization: Bearer <token>" https://<api_server_address>/api/v1