k8s核心概念

Kubernetes 的 Master 包含四个主要的组件:API Server、Controller、Scheduler 以及 etcd

Kubernetes 的架构:Master

API Server:顾名思义是用来处理 API 操作的,Kubernetes 中所有的组件都会和 API Server 进行连接,组件与组件之间一般不进行独立的连接,都依赖于 API Server 进行消息的传送;

Controller:是控制器,它用来完成对集群状态的一些管理。如下两个例子之中,第一个自动对容器进行修复、第二个自动进行水平扩张,都是由 Kubernetes 中的 Controller 来进行完成的;

Scheduler:是调度器,"调度器"顾名思义就是完成调度的操作,如下例子中,把一个用户提交的 Container,依据它对 CPU、对 memory 请求大小,找一台合适的节点,进行放置;

pod创建调度过程用户可以通过 UI 或者 CLI 提交一个 Pod 给 Kubernetes 进行部署,这个 Pod 请求首先会通过 CLI 或者 UI 提交给 Kubernetes API Server,下一步 API Server 会把这个信息写入到它的存储系统 etcd,之后 Scheduler 会通过 API Server 的 watch 或者叫做 notification 机制得到这个信息:有一个 Pod 需要被调度。 这个时候 Scheduler 会根据它的内存状态进行一次调度决策,在完成这次调度之后,它会向 API Server report 说:"OK!这个 Pod 需要被调度到某一个节点上。" 这个时候 API Server 接收到这次操作之后,会把这次的结果再次写到 etcd 中,然后 API Server 会通知相应的节点进行这次 Pod 真正的执行启动。相应节点的 kubelet 会得到这个通知,kubelet 就会去调 Container runtime 来真正去启动配置这个容器和这个容器的运行环境,去调度 Storage Plugin 来去配置存储,network Plugin 去配置网络。etcd:是一个分布式的一个存储系统,API Server 中所需要的这些原信息都被放置在 etcd 中,etcd 本身是一个高可用系统,通过 etcd 保证整个 Kubernetes 的 Master 组件的高可用性。

Kubernetes 的架构:Node

Kubernetes 的 Node 是真正运行业务负载的,每个业务负载会以 Pod 的形式运行。一个 Pod 中运行的一个或者多个容器,真正去运行这些 Pod 的组件的是叫做 kubelet,也就是 Node 上最为关键的组件,它通过 API Server 接收到所需要 Pod 运行的状态

参考:https://edu.aliyun.com/course/314164/lesson/7815

相关推荐
slient_love1 小时前
docker和docker compose部署安装
docker·容器
钱彬 (Qian Bin)1 小时前
项目实践14—全球证件智能识别系统(切换回SQLite数据库并基于Docker实现离线部署和日常管理)
运维·docker·容器·fastapi·证件识别
VermiliEiz2 小时前
二进制文件部署k8s方式(4)
云原生·容器·kubernetes
牛奔3 小时前
docker compose up 命令,默认配置文件自动查找规则
java·spring cloud·docker·容器·eureka
BigBigHang3 小时前
【docker】离线设备安装镜像
运维·docker·容器
学好statistics和DS3 小时前
Docker文件与本地文件,系统
运维·docker·容器
liuc03173 小时前
docker下安装SearXNG
运维·docker·容器
可爱又迷人的反派角色“yang”4 小时前
k8s(一)
linux·运维·网络·云原生·容器·kubernetes
可爱又迷人的反派角色“yang”4 小时前
CICD持续集成Ruo-Yi项目
linux·运维·网络·ci/cd·docker·容器
星环处相逢5 小时前
K8s 网络插件选型:Flannel vs Calico 深度对比
网络·容器·kubernetes