成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Kubernetes支持OpenAPI的新功能

建站服務(wù)器 Open API 讓 API 提供者可以定義自己的操作和模型,并讓開發(fā)者可以自動(dòng)化的生成喜歡語言的客戶端,用以和 API 服務(wù)器通信。Kubernetes 已經(jīng)支持 Swagger 1.2(OpenAPI 規(guī)范的前身)有一段時(shí)間了,但是這一標(biāo)準(zhǔn)不夠完整和有效,憑借這一支持,非常難生成工具或客戶端。

在 Kubernetes 1.4,我們對(duì)目前的模型和操作進(jìn)行了升級(jí),引入了 Open API 規(guī)范(在沒被捐獻(xiàn)給 Open API 之前被稱作 Swagger 2.0)支持的 Alpha 版本。從 Kubernetes 1.5 開始,OpenAPI 規(guī)范的支持已經(jīng)完備,能夠直接從 Kubernetes 源碼生成規(guī)范,對(duì)于模型和方法的任何變更,都會(huì)保障文檔和規(guī)范的完全同步。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括蘭坪網(wǎng)站建設(shè)、蘭坪網(wǎng)站制作、蘭坪網(wǎng)頁制作以及蘭坪網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蘭坪網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蘭坪省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

新規(guī)范讓我們有了更好的 API 文檔,甚至還有了一個(gè) Python 客戶端。

這一模塊化的規(guī)范用 GroupVersion 進(jìn)行分隔,這一做法屬于未雨綢繆,我們想要讓不同的 API Server 使用不同的 GroupVersion。

規(guī)范的結(jié)構(gòu)在 Open API spec definition 中有解釋。我們用 operation 標(biāo)記 來拆分每個(gè) GroupVersion 并盡可能的豐富其中的模型、路徑、操作等信息。操作的參數(shù)、調(diào)用方法以及響應(yīng)都有文檔描述。

例如,獲取 Pod 信息的 OpenAPI 規(guī)范

{
...
"paths":{
"/api/v1/namespaces/{namespace}/pods/{name}":{
"get":{
"description":"readthespecifiedPod",
"consumes":[
"*/*"
],
"produces":[
"application/json",
"application/yaml",
"application/vnd.kubernetes.protobuf"
],
"schemes":[
"https"
],
"tags":[
"core_v1"
],
"operationId":"readCoreV1NamespacedPod",
"parameters":[
{
"uniqueItems":true,
"type":"boolean",
"description":"Shouldtheexportbeexact.Exactexportmaintainscluster-specificfieldslike'Namespace'.",
"name":"exact",
"in":"query"
},
{
"uniqueItems":true,
"type":"boolean",
"description":"Shouldthisvaluebeexported.Exportstripsfieldsthatausercannotspecify.",
"name":"export",
"in":"query"
}
],
"responses":{
"200":{
"description":"OK",
"schema":{
"$ref":"#/definitions/v1.Pod"
}
},
"401":{
"description":"Unauthorized"
}
}
},
…
}
…

有了這些信息,以及 kube-apiserver 的 URL,就可以據(jù)此來調(diào)用接口了(/api/v1/namespaces/{namespace}/pods/{name}),參數(shù)包括 name、exact 以及 export 等,調(diào)用結(jié)果會(huì)返回 Pod 信息。客戶庫生成器也會(huì)使用這些信息來創(chuàng)建一個(gè) API 函數(shù)調(diào)用來讀取 Pod 信息。例如 Python 客戶端 能夠很簡(jiǎn)單的進(jìn)行如下調(diào)用:

fromkubernetesimportclient
ret=client.CoreV1Api().read_namespaced_pod(name="pods_name",namespace="default")
https://gist.github.com/mbohlool/d5ec1dace27ef90cf742555c05480146

一個(gè)簡(jiǎn)化版的 read_namespaced_pod;Python Client:https://github.com/kubernetes-incubator/client-python還可以使用 Swagger-codegen 文檔生成器來根據(jù)這些信息生成文檔:

GET/api/v1/namespaces/{namespace}/pods/{name}
(readCoreV1NamespacedPod)
readthespecifiedPod
Pathparameters
name(required)
PathParameter—nameofthePod
namespace(required)
PathParameter—objectnameandauthscope,suchasforteamsandprojects
Consumes
ThisAPIcallconsumesthefollowingmediatypesviatheContent-Typerequestheader:
*/*
Queryparameters
pretty(optional)
QueryParameter—If'true',thentheoutputisprettyprinted.
exact(optional)
QueryParameter—Shouldtheexportbeexact.Exactexportmaintainscluster-specificfieldslike'Namespace'.
export(optional)
QueryParameter—Shouldthisvaluebeexported.Exportstripsfieldsthatausercannotspecify.
Returntype
v1.Pod
Produces
ThisAPIcallproducesthefollowingmediatypesaccordingtotheAcceptrequestheader;themediatypewillbeconveyedbytheContent-Typeresponseheader.
application/json
application/yaml
application/vnd.kubernetes.protobuf
Responses
200
OKv1.Pod
401
Unauthorized
有兩種方式訪問 OpenAPI

從 kube-apiserver/swagger.json。這個(gè)文件會(huì)包含所有啟用的 GroupVersion 方法和模型,其中的內(nèi)容會(huì)是該 API Server 所對(duì)應(yīng)的最新版本。

Kubernetes 的 Github 倉庫,可以訪問 master 或者其他指定的 Release。

有很多工具 能和這些 API 協(xié)同工作,例如可以用 swagger editor 來打開規(guī)范文件并渲染文檔,或者生成客戶端;還可以直接利用 swagger codegen 來生成文檔和客戶端。自動(dòng)生成的客戶端多數(shù)時(shí)候是開箱即用的。不過可能需要做一些登錄和 Kubernetes 相關(guān)的設(shè)置。

分享標(biāo)題:Kubernetes支持OpenAPI的新功能
分享網(wǎng)址:http://jinyejixie.com/article14/cjcdde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站導(dǎo)航、網(wǎng)頁設(shè)計(jì)公司云服務(wù)器、定制網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
宕昌县| 庆安县| 金湖县| 漠河县| 文山县| 漳浦县| 虎林市| 司法| 蕲春县| 鞍山市| 贺州市| 元朗区| 明光市| 黎川县| 嵩明县| 巴青县| 鄂温| 工布江达县| 白玉县| 库伦旗| 辽源市| 密山市| 红桥区| 凤翔县| 炎陵县| 伊春市| 兴和县| 都江堰市| 大渡口区| 芦山县| 山西省| 保靖县| 闻喜县| 溆浦县| 尚义县| 南召县| 白河县| 怀仁县| 宁波市| 长垣县| 甘孜|