Borg
- K8S起源于Borg系统
- 三种请求来源: borgcfg+CLT+WEB browsers
- BorgMaster: 负责请求的分发
- Borglet: 工人
- sheduler:包工头
- 和Persist store交互,不直接和Borglet交互
- Borglet监听Persist store
K8S
-
CS结构
- Master服务器+Node节点
- Master服务器+Node节点
-
Replication Controller:维护容器副本(POD)数目
-
Api Server:一切交互的入口
-
Scheduler: 负责调度任务,选择合适的节点进行分配任务
- 为了减少API server压力,交互组件,如RC会本地生成缓存来处理后续交互
-
ETCD
- 分布式键值存储服务
- 键值对数据库
- 保存集群配置信息
- ETCD的version3支持本地卷持久化,v2不支持,组成部分包括:
- HTTP server,复用HTTP的auth机制来交互
- Raft:存储读写信息
- WAL:存储预写日志(change-log)
- Store:定期写入磁盘中
- kubelet
- CRI: container runtime interface
- 和docker容器引擎交互,操作docker创建相应的容器
- 管理Pod生命周期
- kube proxy
- 负责写入规则至IPTABLES,IPVS实现服务映射访问
- 负载均衡,pod之间访问
- 默认操作防火墙实现pod的映射
- 支持IPVS
- 高可用集群副本数目最好是>=3
- coreDNS
- 为集群中的SVC创建一个域名IP的对应关系解析
- Dashboard
- 提供B/S访问体系
- INGRESS controller
- 官方只实现四层代理,其可实现七层代理,根据域名或主机名进行负载均衡
- Federation: 提供一个可以跨集群中心多K8S统一管理功能
- Prometheus: 提供K8S集群的监控能力
- ELK: 提供K8S集群日志统一分析介入平台