K8S-11|ApiServer
文章目录
【注意】最后更新于 February 26, 2022,文中内容可能已过时,请谨慎使用。
API Server
kube-apiserver是Kubernetes最重要的核心组件之一,主要提供以下的功能
- 提供集群管理的REST API接口,包括认证授权、数据校验以及集群状态变更等
- 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd)
访问控制概览
Kubernetes API的每个请求都会经过多阶段的访问控制之后才会被接受,这包括认证、授权以及准入控制(Admission Control)等。
Api HttpHandler 接收不同对象的请求 再去做 认证, 再去做 变形, 变形可以使用Webhook的方式来实现, 变形完成后,再去Object Schema Validation(内置的校验逻辑) 去校验这个对象是否还是有效的,你还可以去Validating admission(自定义校验逻辑),也是通过webhook的方式实现。所有的步骤完成后 被保存到 ETCD中
访问控制细节
panic recovery : panic 兜底
request-timeout : 检测是否timeout
authentication: 认证
audit: 审计日志
impersonation: 在user的中添加这个参数,可以把请求模拟成另一个用户
max-in-fight: 用来做限流的, 意思是 Apiserver 最大可以同时处理多少个请, 上限是多少
authorization: 鉴权
kube-aggergator& CRDs: 可以用来把部分请求导流给其它API Server 来处理
decodeing : 做解码
admission : 做校验
stroage : 存入ETCD