K8S架构&k8s组件的职责作用

本文介绍了K8S的起源,将其与Borg系统进行了对比,并详细阐述了K8S架构中的各个组件,包括Replication Controller、Scheduler、API Server、etcd、kubectl、kubelet和Kube-proxy等,以及它们在集群中的职责。同时提到了K8S生态中的其他重要组件如CoreDNS、Dashboard、Ingress Controller、Federation、Prometheus和ELK等,对整个K8S集群的管理和监控提供了全面的视角。
摘要由CSDN通过智能技术生成

K8s的前身可以理解为Borg系统:
Borg系统:
BorgMaster:负责请求分发,整个集群的大脑,真正工作的节点是Borglet,有对应的容器要运行的话,是Borglet提供的计算;
为了防止单节点故障,BorgMaster有多个副本(高可用节点 >= 3 的奇数)
scheduler:调度器,将请求分发给不同的节点;负责将请求写入Paxos,Borglet会对Paxos进行实时监听,Borglet发现有自己的请求了,就会去处理
如图:K8S架构图中 1 对应 Borg系统的 2,K8S架构图中 3 (node集群)对应 Borg系统的 4(Borglet)
etcd(go语言编写键值对数据库) 相当于 Borg系统的Paxosborg系统和K8S架构对比
详细说下K8S架构图:K8S架构图
replication controller :缩写 RC ,负责维护期望的副本数目
Scheduler:负责把任务交给api server,api server负责把任务写入etcd;选择合适的节点进行分配任务
api server :所有服务访问统一入口,从K8S架构图可以得出: RC、scheduler、etcd、webUI都需要与 api server交互,其实每个组件都有自己的缓存,为了防止api server工作量太大
kubectl:命令行管理工具
etcd:键值对数据库 ,负责整个K8S集群重要信息的持久化;etcd 的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转(如何协助的呢?保存我们集群的需要持久化的配置文件,集群死亡后可以借助这些文件进行数据恢复)
可信赖:etcd天生支持集群化,不需要其他组件就能实现集群化,防止单点故障影响持久化
etcd内部架构图:etcd内部结构
与K8S相同都是通过HTTP协议进行CLS的开发,HTTP协议天生支持很多操作方式:put、get、授权认证等等;TCP的话需要额外的开发
Raft:读写信息都在这儿,实时把日志和数据持久化到磁盘(Store)
WAL:预写日志;会有一个大版本日志,有小更改生成子日志,到达一定时间会合并到大版本日志(完整备份消耗太大、定时进行完整备份: 增量备份太多恢复太费时)
kubelet: 会与CRI(container runtime interface)交互,例如与docker交互,操作docker创建对应的容器,会维持容器的生命周期
Kube-proxy:负责写入规则至 IPTABLES、IPVS 实现服务映射访问的

其他插件:
COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析
DASHBOARD:给 K8S 集群提供一个 B/S 结构访问体系
INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理
FEDERATION:提供一个可以跨集群中心多K8S统一管理功能
PROMETHEUS:提供K8S集群的监控能力
ELK:提供 K8S 集群日志统一分析介入平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值