Kubernetes源码学习-APIServer-总览篇

前言

K8s源码分析完整系列一键直达:k8s源码笔记-项目地址,若有帮助,欢迎star,谢谢~

分段导航

概述

APIServer提供了 k8s各类资源对象的CURD/watch、认证授权、准入控制等众多核心功能,在k8s中定位类似于大脑和心脏,它的功能包括:

  • 提供了集群管理的REST API接口(包括资源CURD、认证授权、数据校验以及集群状态变更);

  • 是所有模块的数据交互和通信的枢纽,各模块的运作都依赖于APIServer

  • 提供丰富多样的集群安全管控机制

  • 直连后端存储(Etcd),是唯一与存储后端直接通信的模块

如图所示,这是创建一个资源(Pod)实例过程中,控制层面所经过的调用过程:

在这个过程中,控制层面的每个组件、每一步骤,都需要与APIServer交互。

因此,APIServer无疑是各模块中 **最复杂、定位最核心、涉及面最广、代码量最大 **的模块。

To be honest,看这个模块真的是压力山大,不求深解,不钻牛角尖,目标是摸清大体结构~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes 架构中,kube-apiserver、kube-controller-manager、scheduler 和 kubelet 是四个核心组件,它们之间相互协作,从而实现 Kubernetes 的集群管理功能。 1. kube-apiserver:作为 Kubernetes 集群的接口,处理所有 REST API 请求。kube-apiserver 接收到用户提交的配置信息,然后将其存储到 etcd 中。 2. kube-controller-manager:控制器管理器是 Kubernetes 集群的核心组件,它包含了多个控制器,用于管理集群中的各种资源,如 Pod、Service、ReplicationController 等。每个控制器负责监控一个或多个资源,并确保它们处于预期状态。 3. scheduler:调度器根据资源的需求和可用性,将 Pod 分配到合适的节点上。当 kube-apiserver 接收到一个新的 Pod 创建请求时,它会将该请求发送到调度器进行处理。 4. kubelet:kubelet 运行在每个节点上,负责管理该节点上的所有容器。kubelet 监控 etcd 中的 Pod 配置信息,并负责在节点上创建、启动和停止容器。 这四个组件之间的交互过程如下: 1. 用户提交配置信息到 kube-apiserver。 2. kube-apiserver 将配置信息存储到 etcd 中。 3. kube-controller-manager 监控 etcd 中的资源状态,并根据需要更新该状态。 4. scheduler 监听 kube-apiserver 上的新 Pod 创建请求,并为其分配一个节点。 5. kubelet 监听 etcd 中的 Pod 配置信息,并负责在节点上创建、启动和停止容器。 这样,Kubernetes 就可以实现高可用、弹性伸缩、自动装箱等特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值