深度解析 | K8S API Server之专业术语

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 对Kubernetes API Server的相关术语进行介绍,后续会有新的文章对API请求流程、API Server的存储和扩展点等主题进行介绍。本篇是Kubernetes 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之专业术语

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
5天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
30 3
|
1月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
150 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
3月前
|
API 开发者
【API管理 APIM】APIM集成内部VNet后,自我访问出现(Unable to connect to the remote server)问题,而Remote Server正是APIM它自己
【API管理 APIM】APIM集成内部VNet后,自我访问出现(Unable to connect to the remote server)问题,而Remote Server正是APIM它自己
|
3月前
|
资源调度 Kubernetes API
在K8S中,能否实现不通过api-Server创建Pod?
在K8S中,能否实现不通过api-Server创建Pod?
|
3月前
|
Kubernetes 负载均衡 API
在K8S中,api-service 和 kube-schedule 高可用原理是什么?
在K8S中,api-service 和 kube-schedule 高可用原理是什么?
|
5天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
67 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0
|
1月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
60 0
|
1月前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
80 0

推荐镜像

更多