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.
大多数操作都可以通过kubectl命令行界面或其他命令行工具(如kubeadm)执行,而这些工具又使用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对系统资源和行为提供清晰一致的视图。
  • 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和发布版本控制建议描述了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版本表示不同级别的稳定性和支持。您可以在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)。

-该软件经过良好测试。启用特性被认为是安全的。默认情况下启用特性。

-不会取消对功能的支持,但细节可能会有所改变。

-在随后的beta版或稳定版本中,对象的模式和/或语义可能会发生不兼容的变化。当这种情况发生时,将提供迁移指令。
-这可能需要删除、编辑和重新创建API对象。编辑过程可能需要一些思考。对于依赖该特性的应用程序,这可能需要停机。

-由于后续版本中可能出现不兼容的更改,本软件仅推荐非业务关键用途。如果您有多个可以独立升级的集群,则可以放宽这一限制。

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是整数。

-稳定版本的功能出现在发布的软件为许多后续版本。

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语义实现自己的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、作业和副本集都是启用的。您可以通过在apiserver上设置—runtime-config来启用其他扩展资源。——runtime-config接受逗号分隔的值。例如,要禁用部署和作业,set—runtime-config=extensions/v1beta1/deploy =false,extensions/v1beta1/jobs=false

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容