Kubernetes API Overview

The REST API is the fundamental fabric of Kubernetes. All operations and communications between components, and external user commands are REST API calls that the API Server handles. Consequently, everything in the Kubernetes platform is treated as an API object and has a corresponding entry in the API.
REST API是Kubernetes的基本結構话原。組件和外部用戶命令之間的所有操作和通信都是API服務器處理的REST API調用晕窑。因此,Kubernetes平臺中的所有內容都被視為API對象敛瓷,并且在API中有相應的條目学赛。

Most operations can be performed through the kubectl command-line interface or other command-line tools, such as kubeadm, which in turn use the API. However, you can also access the API directly using REST calls.
大多數(shù)操作都可以通過kubectl命令行界面或其他命令行工具(如kubeadm)執(zhí)行年堆,而這些工具又使用API。不過盏浇,您也可以使用REST調用直接訪問API变丧。

Consider using one of the client libraries if you are writing an application using the Kubernetes API.
如果正在使用Kubernetes API編寫應用程序,請考慮使用其中一個客戶機庫缠捌。

API versioning

To eliminate fields or restructure resource representations, Kubernetes supports multiple API versions, each at a different API path. For example: /api/v1 or /apis/extensions/v1beta1.
為了消除字段或重構資源表示锄贷,Kubernetes支持多個API版本,每個版本都位于不同的API路徑曼月。例如:/api/v1/api/ extensions/v1beta1谊却。

The version is set at the API level rather than at the resource or field level to:
版本在API級別而不是在資源或字段級別設置:

  • Ensure that the API presents a clear and consistent view of system resources and behavior.確保API對系統(tǒng)資源和行為提供清晰一致的視圖。
  • Enable control access to end-of-life and/or experimental APIs.啟用對生命終止和/或實驗api的控制訪問哑芹。
    The JSON and Protobuf serialization schemas follow the same guidelines for schema changes. The following descriptions cover both formats.
    對于模式更改炎辨,JSON和Protobuf序列化模式遵循相同的指導原則。下面的描述涵蓋了這兩種格式聪姿。

Note: The API versioning and software versioning are indirectly related. The API and release versioning proposal describes the relationship between API versioning and software versioning. API版本控制和軟件版本控制是間接相關的碴萧。API和發(fā)布版本控制建議描述了API版本控制和軟件版本控制之間的關系乙嘀。
Different API versions indicate different levels of stability and support. You can find more information about the criteria for each level in the API Changes documentation.
不同的API版本表示不同級別的穩(wěn)定性和支持。您可以在API Changes文檔中找到關于每個級別的標準的更多信息破喻。

Here’s a summary of each level:

Alpha:

  • The version names contain alpha (for example, v1alpha1).
  • The software may contain bugs. Enabling a feature may expose bugs. A feature may be disabled by default.
  • The support for a feature may be dropped at any time without notice.
  • The API may change in incompatible ways in a later software release without notice.
  • The software is recommended for use only in short-lived testing clusters, due to increased risk of bugs and lack of long-term support.

-版本名稱包含alpha(例如虎谢,v1alpha1)。
-軟件可能有漏洞曹质。啟用某個特性可能會暴露bug婴噩。默認情況下可以禁用某個特性。

-功能的支持可能會在任何時候被取消而不另行通知羽德。

-在以后的軟件版本中几莽,API可能會以不兼容的方式更改,而無需通知宅静。

-由于bug風險增加和缺乏長期支持章蚣,建議只在短期測試集群中使用該軟件。

Beta:

  • The version names contain beta (for example, v2beta3).
  • The software is well tested. Enabling a feature is considered safe. Features are enabled by default.
  • The support for a feature will not be dropped, though the details may change.
  • The schema and/or semantics of objects may change in incompatible ways in a subsequent beta or stable release. When this happens, migration instructions are provided. - This may require deleting, editing, and re-creating API objects. The editing process may require some thought. This may require downtime for applications that rely on the feature.
  • The software is recommended for only non-business-critical uses because of potential for incompatible changes in subsequent releases. If you have multiple clusters which can be upgraded independently, you may be able to relax this restriction.

-版本名稱包含beta(例如姨夹,v2beta3)纤垂。

-該軟件經(jīng)過良好測試。啟用特性被認為是安全的磷账。默認情況下啟用特性洒忧。

-不會取消對功能的支持,但細節(jié)可能會有所改變够颠。

-在隨后的beta版或穩(wěn)定版本中,對象的模式和/或語義可能會發(fā)生不兼容的變化榄鉴。當這種情況發(fā)生時履磨,將提供遷移指令。
-這可能需要刪除庆尘、編輯和重新創(chuàng)建API對象剃诅。編輯過程可能需要一些思考。對于依賴該特性的應用程序驶忌,這可能需要停機矛辕。

-由于后續(xù)版本中可能出現(xiàn)不兼容的更改,本軟件僅推薦非業(yè)務關鍵用途付魔。如果您有多個可以獨立升級的集群聊品,則可以放寬這一限制。

Note: Try the beta features and provide feedback. After the features exit beta, it may not be practical to make more changes.
注意:嘗試beta特性并提供反饋几苍。在特性退出beta版之后翻屈,進行更多更改可能不太實際。

Stable:

  • The version name is vX where X is an integer.
  • The stable versions of features appear in released software for many subsequent versions.

-版本名是vX妻坝,其中X是整數(shù)伸眶。

-穩(wěn)定版本的功能出現(xiàn)在發(fā)布的軟件為許多后續(xù)版本惊窖。

API groups

API groups make it easier to extend the Kubernetes API. The API group is specified in a REST path and in the apiVersion field of a serialized object.
API組使擴展Kubernetes API變得更容易。API組在REST路徑和序列化對象的apiVersion字段中指定厘贼。

Currently, there are several API groups in use:

The core (also called legacy) group, which is at REST path /api/v1 and is not specified as part of the apiVersion field, for example, apiVersion: v1.
The named groups are at REST path /apis/GROUP_NAME/VERSION, and use apiVersion: GROUP_NAME/VERSION (for example, apiVersion: batch/v1). You can find the full list of supported API groups in Kubernetes API reference.

核心(也稱為遺留)組界酒,它位于REST path /api/v1,并且沒有指定為apiVersion字段的一部分嘴秸,例如毁欣,apiVersion: v1。
命名組位于REST path /api /GROUP_NAME/VERSION赁遗,并使用apiVersion: GROUP_NAME/VERSION(例如署辉,apiVersion: batch/v1)。您可以在Kubernetes API引用中找到支持的API組的完整列表岩四。

The two paths that support extending the API with custom resources are:

CustomResourceDefinition for basic CRUD needs.基本CRUD需求的CustomResourceDefinition哭尝。
aggregator for a full set of Kubernetes API semantics to implement their own apiserver.聚合器為一組完整的Kubernetes API語義實現(xiàn)自己的apiserver。

Enabling API groups

Certain resources and API groups are enabled by default. You can enable or disable them by setting --runtime-config on the apiserver. --runtime-config accepts comma separated values. For example: - to disable batch/v1, set --runtime-config=batch/v1=false - to enable batch/v2alpha1, set --runtime-config=batch/v2alpha1 The flag accepts comma separated set of key=value pairs describing runtime configuration of the apiserver.

默認情況下啟用某些資源和API組剖煌。您可以通過在apiserver上設置—runtime-config來啟用或禁用它們材鹦。——runtime-config接受逗號分隔的值。例如:-要禁用batch/v1, set -runtime-config=batch/v1=false -要啟用batch/v2alpha1, set -runtime-config=batch/v2alpha1標志接受逗號分隔的一組鍵值對耕姊,它們描述apiserver的運行時配置桶唐。

Note: When you enable or disable groups or resources, you need to restart the apiserver and controller-manager to pick up the --runtime-config changes.
當您啟用或禁用組或資源時,您需要重新啟動apiservercontroller-manager來接受—runtime-config更改茉兰。

Enabling resources in the groups

DaemonSets, Deployments, HorizontalPodAutoscalers, Ingress, Jobs and ReplicaSets are enabled by default. You can enable other extensions resources by setting --runtime-config on apiserver. --runtime-config accepts comma separated values. For example, to disable deployments and jobs, set --runtime-config=extensions/v1beta1/deployments=false,extensions/v1beta1/jobs=false

默認情況下尤泽,守護進程集、部署规脸、HorizontalPodAutoscalers坯约、Ingress、作業(yè)和副本集都是啟用的莫鸭。您可以通過在apiserver上設置—runtime-config來啟用其他擴展資源闹丐。——runtime-config接受逗號分隔的值。例如被因,要禁用部署和作業(yè)卿拴,set—runtime-config=extensions/v1beta1/deploy =false,extensions/v1beta1/jobs=false

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梨与,隨后出現(xiàn)的幾起案子堕花,更是在濱河造成了極大的恐慌,老刑警劉巖蛋欣,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件航徙,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機到踏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門杠袱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窝稿,你說我怎么就攤上這事楣富。” “怎么了伴榔?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵纹蝴,是天一觀的道長。 經(jīng)常有香客問我踪少,道長塘安,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任援奢,我火速辦了婚禮兼犯,結果婚禮上,老公的妹妹穿的比我還像新娘集漾。我一直安慰自己切黔,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布具篇。 她就那樣靜靜地躺著纬霞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驱显。 梳的紋絲不亂的頭發(fā)上诗芜,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音埃疫,去河邊找鬼绢陌。 笑死,一個胖子當著我的面吹牛熔恢,可吹牛的內容都是我干的。 我是一名探鬼主播臭笆,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼叙淌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了愁铺?” 一聲冷哼從身側響起鹰霍,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茵乱,沒想到半個月后茂洒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瓶竭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年督勺,在試婚紗的時候發(fā)現(xiàn)自己被綠了渠羞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡智哀,死狀恐怖次询,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情瓷叫,我是刑警寧澤屯吊,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站摹菠,受9級特大地震影響盒卸,放射性物質發(fā)生泄漏。R本人自食惡果不足惜次氨,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一蔽介、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糟需,春花似錦屉佳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杈帐,卻和暖如春体箕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挑童。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工累铅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人站叼。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓娃兽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尽楔。 傳聞我的和親對象是個殘疾皇子投储,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,306評論 0 10
  • Introduction Modern stateless applications are built and ...
    ???木?燚??閱讀 455評論 0 0
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,448評論 0 13
  • 資治通鑒卷第五 周紀五 前272年——前256年,共17年 赧王(下) 四十三年(前272年) 1阔馋、 楚國以左徒黃...
    華杉2009閱讀 1,435評論 2 19
  • 又是一個快要天亮的夜晚呕寝,已經(jīng)不知道多少次像今天這樣失眠勋眯,也許這不是失眠,而是習慣了吧!剛剛畢業(yè)客蹋,做著從大二就開始的...
    MrLu_9904閱讀 184評論 0 0