平台组件架构

本文主要介绍完整部署Rainbond所需要的所有服务组件,帮助用户了解Rainbond技术栈与组件架构。

目前版本,所有服务都通过Systemd进行管理。

一、服务组件概述

以下是通过一键部署方式将会在服务器安装的Rainbond各服务组件及其版本信息。

组件 版本 安装属性 说明
docker 18.06 manage/compute 应用容器引擎
node 5.x manage/compute 集群监控与控制服务
kube-apiserver/kube-controller-manager/kube-scheduler v1.10.13 manage 应用编排和管理
kubelet v1.10.13 manage/compute 节点复用时仅第一个管理节点启用
etcd/etcd-proxy 3.2.25 manage/compute 管理节点etcd/计算节点etcd-proxy
calico v3.3.1 manage/compute 集群SDN服务,为应用提供网络支持
rbd-dns 5.x manage compute内部dns服务,可作为集群dns服务使用 源码
rbd-db 5.x manage 云帮数据库服务,支持MySQL,TidbCockroachDB
rbd-mq 5.x manage 消息队列服务
rbd-hub 2.6.2 manage 基于Docker Registry封装,提供docker镜像存储服务
rbd-repo 6.5.9 manage 源码构建仓库服务,基于Artifactory OSS封装
rbd-eventlog 5.x manage 云帮事件处理与日志汇聚服务
rbd-worker 5.x manage 云帮应用操作与处理服务
rbd-webcli 5.x manage 提供应用web方式进入容器命令行的服务
rbd-chaos 5.x manage 应用构建服务,提供源码,Docker镜像等方式创建应用
rbd-monitor 5.x manage 云帮服务监控组件,基于Prometheus封装
rbd-api 5.x manage 云帮区域中心API服务,提供底层服务接口
rbd-app-ui 5.x manage 应用控制台web服务
rbd-gateway 5.x manage/gateway 通向应用的全局网关,提供A/B测试、灰度发布等高级功能

组件高级用法可以通过点击组件的链接方式阅读。

二、逻辑架构图

三、附录

3.1 DNS服务说明

rbd-dns服务,除提供平台用户应用的域名解析之外,还提供内部组件互相访问的域名解析。

域名 说明
goodrain.me rainbond内部docker镜像仓库地址,rbd-hub提供服务
kubeapi.goodrain.me kube-apisever服务
region.goodrain.me 数据中心API服务
lang.goodrain.me 源码构建依赖包下载地址,rbd-repo提供服务
maven.goodrain.me maven仓库地址,rbd-repo提供服务
repo.goodrain.me 本地软件源,rbd-gateway提供服务,仅离线环境

3.2 服务组件端口说明

公网访问: 如部署在公有云环境需要公网访问需要安全组放行

端口号 说明 公网访问 服务组件
7070 应用控制台web 需要安全组放行 rbd-app-ui
6060 Websocket服务,提供日志、性能监控实时推送 需要安全组放行 rbd-api
2379,2380,4001 etcd服务 etcd/etcd-proxy
8181,6442 kube-apiserver服务 kube-apiserver
8443,8888 Rainbond API服务 rbd-api
53 集群内部dns服务 rbd-dns
80,443 全局负载均衡服务 需要安全组放行 rbd-gateway
6363,6365,6366,6362 集群事件服务 rbd-eventlog
6535,6369 集群操作k8s的组件 rbd-worker
3228 服务构建组件 rbd-chaos
6300,6301 集群消息队列 rbd-mq
3329,9999 集群监控 rbd-montior
7171 容器命令行界面入口 rbd-webcli
10254 集群负载均衡监听端口 rbd-gateway
8089 集群域名解析服务监听端口 rbd-dns
10251 kube-scheduler服务 kube-scheduler
10252 kube-controller服务 kube-controller
3306 集群数据库 rbd-db
10250 kubelet服务 10250
  • etcd的4001为非安全端口,2379为安全端口
  • kube-apiserver的8181为非安全端口,6442为安全端口, 6443为gateway代理端口
  • rainbond API端口当只有一个数据中心时不需要对外开放,当多数据中心,且在不同网络时需要对外开放,8888非安全端口,8443为安全端口
  • rbd-gateway提供的80与443端口是为HTTP协议应用提供,10001~65535是为TCP协议的应用提供。

更多具体端口信息请参考组件端口

3.3 服务部署类型说明

部署类型 说明 组件名
二进制或者deb/rpm部署 通常使用apt或者yum方式安装,由systemd守护 node,docker,kubelet
容器化部署 通过docker run方式部署,由node生成systemd进行守护 其他组件都是容器化部署