概述
StarlingX是由Open Infrastructure Foundation管理的边缘计算项目,主要是面向需要在边缘部署的应用提供一个高可用、高性能、低时延的边缘计算云平台,满足如工业物联网、电信等领域低时延应用部署需求。StarlingX定义一个完整、安全、高可用的边缘计算软件栈,通过集成业界成熟的如Openstack、K8s、Ceph、OVS、DPDK等开源组件,及社区开发的新服务,从而在部署、管理、操作等方面优化边缘云平台能力。
发展历史
风河(WindRiver)在 2014 年成立了 TitaniumCloud 项目,目标是成为电信网络应用软件的云操作系统平台,提供高可靠性的网络虚拟化(NFV)功能。Titanium Cloud平台在性能、可用性上都有比较理想的提升,支持在通用服务器硬件上实现电信级的性能,提供的NFV平台可以达到6个9,完全满足电信级要求。
StarlingX 是 WindRiver Titanium Cloud产品开源优化后适用于边缘计算场景的云基础设施栈,主要面向的场景是工业IoT、电信、视频业务等对延迟要求较高的业务,支持单节点、双节点及之多100 节点的边缘云部署能力。
StarlingX最初的代码是由英特尔和Wind River提供,目前StarlingX项目由OpenStack Foundation托管代码,在2018年10月release了第一个版本,目前已经版本迭代至第五个版本。
项目初衷
StarlingX的项目初衷是在边缘计算场景重构哪些已经被广泛证明的云计算技术,比如OpenStack、Kubernetes、Ceph、QEMU/KVM等,实现物理地域上分散的边缘云的部署和管理编排,为上层应用提供低时延的边缘计算服务。
StarlingX架构
系统架构

StarlingX边缘云平台包含如下系统组件:
- 低时延Linux操作系统:采用CentOS内核实现并针对性能进行了优化,根据CVE(Common Vulnerabilities and Exposures,通用漏洞披露)进行安全补丁维护。
- 基础开源组件:
- IPMI/Redfish:实现对边缘服务器的带外管理。
- TMP:硬件设备的可信平台加密管理。
- HTTP/HTTPS+Apache+Horizon:实现边缘服务的Web可视化服务能力。
- Ceph:提供分布式存储能力。
- Keytone:实现用户数据管理、鉴权&授权能力。
- ETCD:提供K8s组件数据库存储能力。
- Docker:提供系统组件容器化运行的运行时。
- Calico:提供容器网络能力。
- PostgreSQL:提供OpenStack组件数据库存储能力。
- StarlingX服务组件:
- Host Management:主机生命周期管理和运维监控等。
- Fault Management:组件的故障告警管理。
- Software Management:组件版本及升级管理。
- Configuration Management:系统及平台服务的配置管理。
- Service Management:StarlingX和OpenStack组件服务管理。
- 云原生服务组件:
- K8s集群,支持multus、SR-IOV容器网络CNI等。
- docker镜像仓库及Helm应用仓库
- Armada微服务框架
- OpenStack组件:
- 提供OpenStack云平台能力,包括如Keystone、Nova、Neutron、Cinder等组件。
部署框架
StarlingX对边缘云的部署框架有如下考虑:
- 边缘云会分布在不同物理地域的多个区域部署。
- 会有一个中心平台实现对边缘计算服务的编排和管理。
- 边缘云根据不同的地理位置会有不同大小的规模。

部署架构

StarlingX边缘云部署的节点分为三种角色:
- Controller Node/Master Node - 控制节点
- 运行StarlingX边缘云所有控制面相关的功能服务实现云资源的管理,如镜像image管理、K8s pods管理、服务service管理。
- 支持双节点实现HA高可用,采用Active/Active或Active/standby模式
- Worker Node - 工作节点
- 运行用户应用的容器实例或VM实例
- Storage Node - 存储节点
- 运行Ceph集群,将主机硬盘(SATA、SAS、SSD、NVMe)作为Ceph OSD对外提供持久化存储能力。
- 支持2-9节点。
- 支持2、3副本实现数据高可用。
三种角色可以根据实际的部署方式,支持共享主机或独立部署。
同时,StarlingX边缘云规划了如下逻辑网络,实现集群内外的互联互通:
- Operations, Administration and Management(OAM) Network - 运维操作管理网络
- 仅连接控制节点。
- 外部网络,对外发布StarlingX边缘云平台的API接口(Keystone用户管理、StarlingX服务、K8s API服务、Horizon网页界面、SSH、SNMP等)。
- 一般采用1GE接口。
- Management Network - 平台管理网络
- StarlingX内部服务管理及监控流量。
- 容器实例访问存储流量。
- 一般采用10GE接口。
- Cluster Host Network - K8s集群网络
- K8s集群管理和控制流量
- 容器实例的内部流量
- 默认和Management Network共享同一个端口,也可以配置独立端口
- External Newtork - 外部网络
- 通过Calico对外发布容器网络实现外部互访能力。
- 可选和Cluster Host Network共享端口,通过NodePort对外发布服务。
- 可选和OAM Network共享端口,,通过NodePort对外发布服务。
- IPMI Network - 带外管理网络
- 服务器带外管理流量。
- 需要和OAM网络三层路由可达,实现外部访问。
- 一般采用服务BMC卡自带的RJ45网口。
- PxeBoot Network - 网络启动网络
- 实现由controller node网络启动其他节点,PXE服务(DHCP、TFTP等)流量。
- 可选网络,默认复用management network。当management network采用IPv6时,或采用vlan tagged配置时,需要单独配置Pxeboot网络(pxeboot不支持IPv6、部分服务器BIOS不支持基于vlan tagged网络启动pxe)。
