深度解析 | K8S API Server之专业术语
对Kubernetes API Server的相关术语进行介绍,后续会有新的文章对API请求流程、API Server的存储和扩展点等主题进行介绍。本篇是Kubernetes API Server系列第二篇。
术语解释
在简要概述了API Server和HTTP API空间及其属性之后,我们现在对文中使用的术语进行更正式的定义。像pod,service、endpoints、deployment等基元组成了Kubernetes类型的对象。我们使用以下术语:
Kind代表一个实体的类型。每个对象都有一个Kind字段,它告诉一个客户端(如kubectl或者oc)它具体代表的实体,如pod:
apiVersion: v1
kind: Pod
metadata:
name: webserver
spec:
containers:
– name: nginx
image: nginx:1.9
ports:
– containerPort: 80
有三种类型的Kind:
-
对象(Objects)表示系统中的一个持久实体。对象可能具有多个资源,客户端可以使用它们来执行特定的操作。例如:Pod和Namespace。
-
列表(Lists)是一个或多个种类的实体的资源集合。列表是一般元数据的有限集合。例如:PodLists和NodeLists。
-
特殊用途类别(Special purpose kinds)用于针对对象的特定操作,以及一些非持久化的实体(例如/binding或/status),发现使用APIGroup和APIResource,错误结果使用Status等。
API组(API Group):逻辑上关联的Kinds的集合。例如,所有批处理对象(batch objects)都在批处理API Group中,如Job和ScheduledJob。
版本(Version):每个API Group均存在多个版本。例如,一个组首先出现在v1alpha1中,然后升级到v1beta1,最后升级到v1。在某个版本(如v1beta1)中创建的对象,可以在每个兼容的版本(如v1)中检索到。API Server会进行无损的转换并返回所请求的版本中的对象。
资源(Resource):一个系统实体,以JSON格式通过HTTP进行发送和检索。资源可以暴露为单独的资源(如…/namespaces/default),或者资源集合(如…/jobs)。
使用API组(API Group)、版本(Version)和资源(Resource)可以唯一的定义一个HTTP路径:
更确切的说,Jobs的实际路是/apis/batch/v1/namespaces/$NAMESPACE/jobs。但是与类似节点(Node)这种资源相反,Jobs不是一个集群范围的资源。因此为了简洁,我们在路径中省略了$NAMESPACE这个字段。
需要注意的是Kinds不仅存在于不同的版本中,也可能同时存在于不同的API组之中。例如,Deployment最早处于扩展组(extension group)中,是alpha版本的Kind,后来Deployment升级到了GA版本,并位于自己的组apps.k8s.io中。因此,要唯一的识别Kind,需要同时使用API组(API Group)、版本(Version)和类型名称(Kind name)。
本文转移K8S技术社区-深度解析 | K8S API Server之专业术语
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
深度解析 | K8S API Server之请求处理
对Kubernetes API请求流程进行解析。后续还将对APIServer的存储和扩展点等主题进行介绍。本篇是KubernetesAPI Server系列第三篇。 请求和处理流程 在介绍了Kubernetes API中使用到的术语之后,接下来我们介绍如何处理API请求。API源码存在于kubernetes/pkg/api路径中,会处理集群内以及集群外客户端的请求。 那么,当HTTP请求到达Kubernetes API时,具体会发现什么呢?从上层看,会发现以下交互: 1.HTTP请求由一串过滤器(filters)进行处理,这些过滤器注册在DefaultBuildHandlerChain()(参阅源码:https://github.com/kubernetes/apiserver中的config.go)中,并执行相应的处理。过滤器要么会将信息传递并附加到ctx.RequestInfo上(例如通过了身份认证的用户),要么返回适当的HTTP响应代码。 2.第二步,复用器(multiplexer,参阅源码:https://github.com/kubernetes/apiserver中的co...
- 下一篇
深度解析 | K8S API Server之入门须知
我们首先将对Kubernetes API Server进行概括性的介绍,然后对一些术语进行介绍,最后对API请求流程进行解释。后续会有新的文章对API Server的存储和扩展点等主题进行介绍。本篇是KubernetesAPI Server系列第一篇。 API Server简介 在概念层面上,Kubernetes由一系列不同角色的节点组成。Mater节点上的控制平面由API Server,Controller Manager和Scheduler组成。API Server是中心管理实体,是与分布式存储组件(etcd)进行直接通信的唯一组件。API Server提供以下核心功能: 服务于被集群内部工作节点和外部kubectl使用的Kubernetes API 为集群组件提供代理,如Kubernetes UI 允许对对象(例如pod和service等)的状态进行操作 保持分布式存储(etcd)中对象的状态 Kubernetes API是HTTP API,以JSON作为主要的结构化数据的序列化格式,但同时它也支持Google的Protocol Buffers格式进行描述(主要用于集群内部通信...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8