kubernetes权威指南-version4-第五章 核心组件运行机制-- API Server

5.1 Kubernetes API Server

功能:(1)提供kubernetes各类资源对象的增删改查及Watch等http REST接口。是集群内各个功能模块之间数据交互和通信的中心,是数据中心。

(2)是集群管理的API入口。

(3)是资源配额控制的入口。

(4)提供了完备的集群安全机制。

Kubernetes API Server通过kube-apiserver进程(master上)提供服务。通常通过kubectl与Kubernetes API Server交互,它们之间的接口是RESTful API。

通过运行kubectl proxy进程可以启动一个内部代理来限制某些REST服务。如:kubectl proxy  --reject-paths="^/api/v1/replicationcontrollers" --port=8001 --v=2

API Server采用HTTPS安全传输通道与CA签名数字证书强制双向认证的方式,保障安全性。

API Server架构:

(1)API层:以REST方式提供各种API接口,包括Kubernetes资源对象的CRUD和Watch等API,还有健康检查、UI、日志、性能指标等运维监控相关的API。

(2)访问控制层:当客户端访问API接口时,访问控制层负责对用户身份鉴权,验明用户身份,核准用户对Kubernetes资源对象的访问权限,然后根据配置的各种资源访问许可逻辑,判断是否允许访问。

(3)注册表层:Kubernetes把所有资源对象都保存在注册表(Register)中,针对注册表中的各种资源对象定义了:资源对象的类型、如何创建资源对象、如何转换资源的版本、如何将资源编码和解码为JSON或ProtoBuf格式进行存储。

(4)etcd数据库:用于持久化存储Kubernetes资源对象的KV数据库。etcd的Watch API接口,List-Watch机制

List-Watch机制,客户端首先调用API Server的List接口获取相关资源对象的全量数据并缓存到内存中,然后启动对应资源的Watch线程,接收到Watch事件后,根据事件类型对内存中的资源进行相应的同步修改。全量结合增量、高性能、近乎实时的数据同步方式。

API Server为每种资源对象都引入了一个相对不变的internal版本,每个版本只要支持转换为internal版本,就能与其他版本进行间接转换。

Kubernetes API Server把收到的REST请求转发到某个node上的kubelet守护进程的REST端口,由该kubelet进程负责响应。

各个功能模块通过缓存机制来缓存数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值