K8s 1.4 - Kube API服务器 - Steven McGown

作者:API传播员 · 2025-12-15 · 阅读时间:3分钟
Kubernetes API 和 Kube API 服务器是 Kubernetes 集群的核心组件,提供 RESTful API 接口用于管理和操作集群资源,如节点、Pod 和服务。Kube API 服务器处理 kubectl 命令,进行身份验证并与 ETCD 交互,支持手动安装和配置,包括通过 Kube API 服务器创建 Pod 的详细流程,涉及调度器、kubelet 和容器运行时引擎的协作。

Kubernetes API 和 Kube API 服务器

Kubernetes API应用程序编程接口)是 Kubernetes 的核心组件之一,为用户、管理员以及外部系统提供了与 Kubernetes 集群交互和控制的方式。它充当了一个通信管道,允许用户管理和操作集群中的各种资源,如节点、Pod、服务等。

Kubernetes RESTful API,遵循 REST 原则。这意味着它采用了标准的 HTTP 方法(如 GET、POST、PUT、DELETE)来实现无状态的客户端-服务器通信模型,并通过唯一的 URL 标识资源进行操作。

Kube API 服务器是 Kubernetes 的主要管理组件。当您运行 $kubectl 命令时,kubectl 工具会与 Kube API 服务器交互。Kube API 服务器首先对请求进行身份验证,然后从 ETCD 集群中检索数据并返回请求的信息。需要注意的是,您并不一定需要通过 kubectl 命令行工具,您也可以直接与 API 进行交互。


示例:通过 Kube API 服务器创建 Pod

在以下示例中,Kube API 服务器创建了一个 Pod 对象,但并未将其分配到具体的节点上。

Kube API 服务器示意图

用户可以执行类似以下的命令:

curl -X POST api/v1/namespaces/pods/other
  1. 节点控制器通过 Kube 控制器管理器持续监控 Kube API 服务器。Kube API 服务器会通知 Kube 调度器,用户请求手动创建一个 Pod。
  2. 调度器会确定将新 Pod 分配到哪个节点,并将该信息返回给 Kube API 服务器。
  3. Kube API 服务器更新 ETCD 集群中的相关信息。
  4. API 服务器将更新后的信息传递给目标节点上的 kubelet
  5. Kubelet 在节点上创建 Pod,并指示容器运行时引擎部署应用程序镜像。
  6. 一旦部署完成,Kubelet 会通知 API 服务器。
  7. 最后,API 服务器再次更新 ETCD 集群中的状态信息。

手动安装 Kube API 服务器

如果需要手动安装,Kube API 服务器是一个独立的组件。安装过程中,Kube API 服务器的许多配置选项都涉及到证书。例如,ETCD 服务器的地址可以通过类似 --etcd-servers=https://127.0.0.1 的选项来定义。


Kubernetes API 和 Kube API 服务器是管理和编排 Kubernetes 集群中各个组件的关键部分。深入理解它们的作用以及它们如何与 ETCD、Kube Scheduler 和 Kubelet 等其他组件交互,对于高效管理 Kubernetes 集群至关重要。

原文链接: https://smcgown.com/blog/kubernetes/1-4-kube-api-server/