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

相关推荐
KubeSphere 云原生27 分钟前
在 KubeSphere 上运行 Moltbot(Clawdbot):自托管 AI 助手的云原生实践
docker·云原生·容器
你才是臭弟弟1 小时前
生产环境开箱即用的“Flink + Iceberg 数据湖容器搭建”(Docker)
docker·容器·jar
_运维那些事儿1 小时前
GitLabCI-CD入门
运维·ci/cd·容器·云计算·k8s·运维开发
Clarence Liu2 小时前
k8s 1.35 使用kubeadm部署高可用集群
云原生·容器·kubernetes
boy快快长大2 小时前
Docker简单服务迁移
运维·docker·容器
刘某的Cloud2 小时前
docker run 常用参数
linux·运维·docker·容器
刘某的Cloud3 小时前
docker cp 传文件,使用 docker exec 结合 tar 流传输,效率更高且能保留权限
linux·运维·docker·容器·系统
摆烂z3 小时前
k8s频繁拉取镜像导致磁盘占满imagefs
云原生·容器·kubernetes
摸鱼仙人~3 小时前
OpenManus沙箱实现解析:从Docker容器到轻量替代方案
docker·容器·eureka
打工的小王13 小时前
docker(三)具体项目的部署
运维·docker·容器