kubernetes知识点什么是API
Kubernetes API 是集群对外提供的统一接口,由 kube-apiserver 提供,用于对各类资源对象进行增删改查,负责认证鉴权、准入控制和把集群期望状态写入 etcd,驱动控制器实现声明式管理。

在 Kubernetes 里,“API”你可以把它理解成:所有人(人和程序)跟集群打交道的唯一入口。
1)API 是干嘛的?
你平时敲的这些命令:
-
kubectl get pods -
kubectl apply -f xxx.yaml -
kubectl delete svc ...
本质上都不是“直接操作 Pod / Service”,而是去请求 Kubernetes API,让它替你完成创建、查询、更新、删除这些动作。
所以 Kubernetes 的 API 本质就是一套“规则 + 接口”,规定:
-
资源长什么样(Pod、Deployment、Service…)
-
允许你对资源做什么操作(增删改查)
-
谁能做(权限 RBAC)
-
做完之后要触发什么(控制器去调度、拉起、扩容等)
2)K8s 的 API 由谁提供?
主要就是 kube-apiserver。
它是控制面的核心组件之一,职责很直接:
-
接收所有请求(kubectl、controller、scheduler、operator、UI、CI/CD)
-
做认证/鉴权(你是谁、你能不能做)
-
做准入控制(Admission:资源是否合规、要不要自动注入一些字段)
-
把“最终状态”写进 etcd(集群的数据库)
一句话:apiserver 是门卫 + 记录员,所有人先进门、登记,然后才轮到后面的控制器去干活。
3)API 访问的对象是什么?
对象就是 Kubernetes 的资源(Resource),比如:
-
工作负载:Pod / Deployment / StatefulSet
-
网络:Service / Ingress / NetworkPolicy
-
存储:PV / PVC / StorageClass
-
配置:ConfigMap / Secret
-
权限:Role / RoleBinding
这些资源都通过 API 暴露出来,统一用 REST 风格访问,比如:
-
GET /api/v1/namespaces/default/pods(查 Pod) -
POST /apis/apps/v1/namespaces/default/deployments(建 Deployment)
4)为什么说 K8s 是 “声明式”?
因为你通过 API 提交的通常不是“我要怎么做”,而是“我想要什么结果”。
比如你 apply 一个 Deployment:
-
你声明:我要 3 个副本
-
API 记录这个“期望状态”
-
控制器不断对比现实状态,不够就补到 3 个
所以 Kubernetes API 不只是“接口”,它还是整个集群状态的定义中心。
更多推荐


所有评论(0)