Skip to content

overview

API Server

kube-apiserver 是 Kubernetes 最重要的核心组件之一, 主要提供以下的功能

  • 提供集群管理的 REST API 接口, 包括认证授权、数据校验以及集群状态变更等
  • 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据, 只有 API Server 才直接操作 etcd)

访问控制概览

Kubernetes API 的每个请求都会经过多阶段的访问控制之后才会被接受, 这包括认证授权以及准入控制(Admission Control)等. 访问控制概览

  • API HTTP handler: 处理不同对象的请求
  • Authentication Authorization: 认证及鉴权
  • Mutating admission:
    • Webhook: 可以自定义特定对象的属性值修改规则
  • Object Schema Validation: 校验对象是否有效(可以防止上一步修改后的对象有误)
  • Validationg admission: 自定义对象的校验逻辑
    • Webhook: 不可修改对象属性值。可以自定义特定对象的校验逻辑。
  • Persisted to etcd: 保存到 etcd

访问控制细节

访问控制细节

  • panic recovery: 恐慌恢复
  • request-timeout: 超时检查
  • authentication: 认证
  • audit: 记录审计日志(谁在什么时候修改的什么对象,可以用来甩锅)。
  • impoersonation: 冒充其它用户访问
  • max-in-flight: 限流
  • authorization: 鉴权
  • kube-aggregator & CRDs: 将非默认对象请求转发到对应的 aggregate apiservers
  • mux:
    • resource handler:
      • decoding: 解码
      • request conversion & defaulting:
      • admission: 准入
      • REST logic: 校验
      • storage conversion & defaulting: 存储到 etcd
      • result conversion: