建设工作站服务器
使用Open API,API提供程序可以定义自己的操作和模型,并允许开发人员自动生成喜欢语言的客户端以与API服务器进行通信。 Kubernetes支持swagger1.2(openapi规范的前身)一段时间了,但该标准并不完整、有效,因此生成工具和客户端非常困难。
Kubernetes 1.4升级了当前的模型和操作,并引入了Open API规范(以前称为Swagger 2.0 )支持的alpha版本。 从Kubernetes 1.5开始,对OpenAPI规范的支持得到增强,可以直接从Kubernetes源生成规范。 对模型和方法所做的更改也将确保文档和规范的完全同步。
新规范提供了更好的API文档,还提供了Python客户端。
此模块化规范由GroupVersion分隔。 这是为了将来做准备,我们希望在各种API Server上使用各种GroupVersion。
规格的结构在Open API spec definition中进行了说明。 使用operation标签分割每个组版本,以尽可能丰富其中的模型、路径和操作等信息。 操作的参数、调用方法和响应都包含文档的说明。
例如,取得Pod信息OpenAPI规格
{
.
&; #039; paths&; #039; {
&; #039;/API/v1/namespaces/{ namespace }/pods/{ name } & amp; #039; {
&; #039; get&; #039; {
&; #039; 描述和映射; #039; &; #039; readthespecifiedpod&; #039;
&; #039; consumes&; #039; [
&; #039; */*&; #039;
]、
&; #039; 产品& amp; #039; [
&; #039; APP/JSON & amp; #039;
&; #039; APP/YAML & amp; #039;
&; #039; application/vnd.kubernetes.proto buf & amp; #039;
]、
&; #039; 方案& amp; #039; [
&; #039; https&; #039;
]、
&; #039; tags&; #039; [
&; #039; core_v1&; #039;
]、
&; #039; 操作id & amp; #039; &; #039; readcorev1namespacedpod&; #039;
&; #039; 参数和映射; #039; [
{
&; #039; uniqueItems&; #039; true,
&; #039; type&; #039; &; #039; 布尔和映射; #039;
&; #039; 描述和映射; #039; &; #039; shouldtheexportbeexact.exactexportmaintainscluster-specificfieldslike & amp; #039; namespace&; #039; &; #039;
&; #039; name&; #039; &; #039; exact&; #039;
&; #039; 在in&; #039; &; #039; 查询和映射; #039;
(,
{
&; #039; uniqueItems&; #039; true,
&; #039; type&; #039; &; #039; 布尔和映射; #039;
&; #039; 描述和映射; #039; &; #039; shouldthisvaluebeexported.exportstripsfieldsthatausercannotspecify.& amp; #039;
&; #039; name&; #039; &; #039; 导出& amp; #039;
&; #039; 在in&; #039; &; #039; 查询和映射; #039;
}
]、
&; #039; 响应和映射; #039; {
&; #039; 200&; #039; {
&; #039; 描述和映射; #039; &; #039; OK&; #039;
&; #039; 方案& amp; #039; {
&; #039; $ref&; #039; &; #039; #/definitions/v1.Pod&; #039;
}
(,
&; #039; 401&; #039; {
&; #039; 描述和映射; #039; &; #039; 未加密& amp; #039;
}
}
(,
……
}
……
有了这些信息和kube-apiserver的URL,就可以根据这些信息调用接口(/API/v1/namespaces/{ namespace }/pods/{ name } ) 参数包括name、exact和export。客户端库生成器也使用这些信息创建用于读取Pod信息的API函数调用。 例如,Python客户端可以轻松地进行以下调用:
fromkubernetesimportclient
ret=client.core v1 API (.read _ namespaced _ pod ) name=&; #039; pods_name&; #039;namespace=&; #039; 默认& amp; #039; ) )。
33559 gist.github.com/mbohlool/d5e C1 dace 27 ef 90cf 742555 c 05480146
简化版的read_namespaced_pod; python client:https://github.com/kubernetes-incubator/client-python使用Swagger-codegen文档生成器基于这些信息创建文档
get/API/v1/namespaces/{ namespace }/pods/{ name }
( readCoreV1NamespacedPod )
readthespecifiedPod
路径参数
名称(要求)
PathParameter—nameofthePod
namespace (要求)
path parameter—objectnameandauthscope,suchasforteamsandprojects
消费者
thisapicallconsumesthefollowingmediatypesviathecontent-typerequestheader :
*/*
查询参数
pretty(optional )
QueryParameter—If&; #039; 真& amp; #039;thentheoutputisprettyprinted。
exact (选项)
query parameter-shouldtheexportbeexact.exactexportmaintainscluster-specifieldslike & amp; #039; namespace&; #039;
导出( optional )
qeryparameter—shouldthisvaluebeexported.exportstripsfieldsthatausercannotspecify。
Returntype
v1.Pod
产品
thisapicallproducesthefollowingmediatypesaccordingtotheacceptrequestheader; themediatypewillbeconveyedbythecontent-typeresponseheader。
APP JSON
APP YAML
application/vnd.kubernetes.proto buf
响应
200
OKv1.Pod
401
未加密
可以通过两种方式访问OpenAPI
来自kube-apiserver/swagger.json。 此文件包含所有有效的GroupVersion方法和模型,其内容是与API服务器相对应的最新版本。
在Kubernetes的Github仓库中,可以访问主文件或其他指定的版本。
有很多工具可以与这些API配合使用,例如使用swagger editor打开规范文件并渲染文档和生成客户端。 也可以直接使用swagger codegen生成文档和客户端。 自动生成的客户端往往开箱即用。 但是,可能需要Kubernetes相关的设置。
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn