borg系统
Master节点为奇数,scheduler向paxos写入数据,然后borglet监听到右自己的消息,就会执行命令。
k8s架构
和borg一样,但是中间加了一个apiserver层,etcd约等于paxos。
- scheduler:负责接收任务,选择合适的节点进行分配任务.
- replication controller:负责控制node的副本数量,也就是删除或者创建pod.
- apiserver:所有外界输入的入口,包括kubelet、kube proxy、replication controller、scheduler.
- etcd:可信赖的分布式键值对数据库,存储k8s集群的所有重要信息,其内部结构如下图所示:
etcd使用http协议的c/s架构,WAL是一种持久化策略,简单来说就是增量+完整备份,每一小段时间进行一个增量备份,每隔一大段时间进行完整备份,数据写入store中.
- kubelet:(CRI:container runtime interface),操作docker,维护Pod的生命周期(pod运行在docker中).
- kube proxy:负责写入ipvs和iptables,执行负载均衡,实现pod和pod之间的通信.
其他概念
- coreDNS:为集群中的SVC创建一个域名IP的对应关系解析。
- dashboard:给k8s集群提供的B/S访问体系。
- ingress controller:官方只实现四层代理,ingress实现七层代理。
- federation:提供一个可以跨集群中心多k8s统一管理功能。
- prometheus:提供k8s集群的监控能力。
- ELK:提供k8s日志统一管理平台。