K8S核心组件介绍

原创
2021/08/11 21:00
阅读数 173

本篇文章主要来介绍K8S中的基础组件,以及它们所做的事情,算是一篇读书笔记吧。


一、控制面 Master 节点的主要组件:


1. kube-apiserver:

负责对外提供集群各类资源的增删改查及 Watch 接口,它是 Kubernetes 集群中各组件数据交互和通信的枢纽。当收到一个创建 Pod 写请求时,它的基本流程是对请求进行认证、限速、授权、准入机制等检查后,写入到 etcd 即可。

备注:kube-apiserver 在设计上可水平扩展,高可用 Kubernetes 集群中一般多副本部署。


2. kube-scheduler:
是调度器组件,负责集群 Pod 的调度。基本原理是通过监听 kube-apiserver 获取待调度的 Pod,然后基于一系列筛选和评优算法,为 Pod 分配最佳的 Node 节点。


3. kube-controller-manager:

包含一系列的控制器组件,比如 Deployment、StatefulSet 等控制器。控制器的核心思想是监听、比较资源实际状态与期望状态是否一致,若不一致则进行协调工作使其最终一致。


4.etcd 组件:

Kubernetes 的元数据存储。


二、Node 节点的主要组件:


1. kubelet:  

负责 Pod 的创建运行,部署在每个节点上的 Agent 的组件。基本原理是通过监听 APIServer 获取分配到其节点上的 Pod,然后根据 Pod 的规格详情,调用运行时组件创建 pause 和业务容器等。


2.kube-proxy:

部署在每个节点上的网络代理组件。基本原理是通过监听 APIServer 获取 Service、Endpoint 等资源,基于 Iptables、IPVS 等技术实现数据包转发等功能。

本文分享自微信公众号 - 灰子学技术(huizixueguoxue)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部