路由
路由
将请求转发给合适的组建去处理,周期性查询Diego Bulletin Board System(BBS)查看各个app当前运行的容器与单元,再去根据每个虚拟机的IP地址和容器的端口号重新计算新的路由表。
鉴权
OAuth2服务器(UAA)和登陆服务器
。。。
生命周期
Cloud Controller 和 Diego Brain
Cloud Controller指定app的部署,CC通过CC-Bridge指示DiegoBrain配合独立的Diego cells部署和运行app。之前是Cloud Controller的Droplet Execution Agent(DEA)执行app生命周期的任务
CC记录了组织,空间,用户角色,服务等信息
nsync,Converger,Cell Reps
需要不断的监控应用,以前是Health Manager(HM9000)模块实现这些功能。现在使用更分散的架构。
- nsync 通过Cloud Controller收集app伸缩的指令写到BBS数据库中
- Cell Rep 监控Garden查看app实例在容器中的状况与运行状态,更新相应的BBS中ActualLRP的值
- Diego Brain's Converger监控DesiredLRP和ActualLRP值,启动或停止app实例使其顺从ActualLRP计数
App存储与执行
Blob Store
一个存储大型二进制文件的仓库。 包括:软件包,buildpacks,dropletsDiego Cell
每个app虚拟机有一个DiegoCell去执行启动或停止命令,管理虚拟机的容器,报告app状态和其他的数据到BBS或者Loggregator。 以前用的是DEA node服务
Service Brokers
提供服务实例,让应用可以绑定服务消息
Consul, BBS
- Consul服务器存储一个控制数据,需要长久使用的,如组建的IP,分布式的锁信息等。
- Diego's Bulletin Board System(BBS)存储一些短暂和一些可任意处理的信息。 一些应用状态,心跳信息。用etcd实现。
度量和日志
Metrics Collector, Loggregator
metrics 收集器汇集各组件的一些度量和统计信息,可以通过这些信息监控cf的部署。 Loggregator系统流式输出应用日志给开发者。