好雨云帮,一款不错的国产开源PaaS

Tags: 系统设计 

目录

说明

知道这个产品已经有很长的时间了,几年前前同事过去,就粗略看了一下。当时感觉不错,但是一直没试用,最近有时间整一下。

  1. 好雨云官网
  2. 好雨科技官方开源项目

安装

好雨云安装中给出配置需求为:demo环境需要4C8G,100G磁盘,支持CentOS7。

一键部署脚本托管在github:rainbond-install

如果机器中已经安装了其它相关服务,先卸载:

yum erase nginx docker kubernetes

这里使用一下它的开发中的版本v3.6。

git clone --depth 1 -b v3.6 https://github.com/goodrain/rainbond-install.git
cd rainbond-install
./setup.sh install

安装脚本的交互过程很赞:

安装过程

安装过程会下载docker镜像,我安装的时候下载calico的镜像非常慢,修改rainbond.yaml.default中的镜像源,更改为阿里云的:

registry-mirrors: "https://0leoc7x1.mirror.aliyuncs.com"

另外,我安装的过程中,安装network的时候失败,检查发现是etcd容器启动失败。原因是/etc/salt/minion.d/minion.ex.conf中记录的IP是eth0网卡的IP,而不是我指定的eth1网卡的IP,直接更改之后,再次安装成功。

安装过程耗时比较长,这期间学习了一下它的安装脚本。

安装过程分析

rainbond.yaml.default是安装过程中使用的配置文件,通过其中的install-type可以设置为在线安装,不设置为就离线安装:

install-type: online

setup.sh脚本中可以看到,在线安装会调用init_config

install)
    #do not check the internet when install offline
    if $( grep 'install-type: online' rainbond.yaml.default >/dev/null );then
    check_func && init_config && install_func ${@:2}
    else
    init_config && install_func
    fi
;;

init_config

init_config中调用脚本./scripts/init_sls.sh,看了一眼init_sls.sh,首先设置了一下源,安装了相关的软件,重点是生成了配置文件/srv/pillar/rainbond.sls

/srv/pillar/rainbond.sls就是rainbond.yaml.default的这个配置模版的实例版。

init_sls.sh在rainbond.sls设置了数据库、etcd、calico、entrance(LB)等参数,例如它会自动根据本地IP,选取calico使用的IP地址:

    IP_INFO=$(ip ad | grep 'inet ' | egrep ' 10.|172.|192.168' | awk '{print $2}' | cut -d '/' -f 1 | grep -v '172.30.42.1')
    IP_ITEMS=($IP_INFO)
    INET_IP=${IP_ITEMS%%.*}
    if [[ $INET_IP == '172' ]];then
        CALICO_NET=10.0.0.0/16
    elif [[ $INET_IP == '10' ]];then
        CALICO_NET=172.16.0.0/16
    else
        CALICO_NET=172.16.0.0/16
    fi

最后在本地安装、启动Salt服务,每个组件的salt文件位于install/salt中,这个目录被复制到了/srv/中。

install_func

当前的机器是作为管理节点的,将会安装下面的组件:

MANAGE_MODULES="init \
storage \
docker \
misc \
grbase \
etcd \
network \
kubernetes.server \
node \
db \
plugins \
proxy \
prometheus \
kubernetes.node"

每个模块的安装方式为:

salt "*" state.sls $module

使用

安装完成之后直接打开网址,就进入到注册页面:

http://<Master的IP地址>:7070/

注册页面

默认第一个注册用户为平台管理员。

插件设计是亮点,缺点是目前功能还有点少,没有多团队管理、镜像仓库、构建过程管理、持续集成等功能。

参考

  1. 好雨云官网
  2. 好雨云安装前准备
  3. 好雨云安装
  4. 好雨科技官方开源项目
  5. rainbond-install

系统设计

  1. Netflix 的异地多活设计: Active-Active for Multi-Regional Resiliency
  2. Facebook 的缓存系统实践经验《Scaling Memcache at Facebook》
  3. 多机数据系统的正确性与一致性
  4. 《大型网站技术架构: 核心原理与案例分析》阅读摘录
  5. 《分布式金融架构课》阅读笔记2: 线性一致的分布式数据系统的实现过程
  6. 《分布式金融架构课》阅读笔记1: 单机&多机并发/多副本读写正确性和一致性
  7. 《消息队列高手课》阅读笔记: Rabbit/Rocket/Kafka/模型/消息事务/保序等
  8. 《消息队列高手课》阅读笔记: Rabbit/Rocket/Kafka/模型/消息事务/保序等
  9. 《Redis核心技术与实践》阅读笔记: 数据类型/存储开销/Rehash/案例等
  10. 《Redis核心技术与实践》阅读笔记: 数据类型/存储开销/Rehash/案例等
  11. 《高并发系统设计40问》阅读笔记: 数据库/缓存/消息队列/分布式服务
  12. 《高并发系统设计40问》阅读笔记: 数据库/缓存/消息队列/分布式服务
  13. 《MySQL实战45讲》阅读笔记: 索引类型/数据可靠性/事务/间隙锁/临时表等
  14. 系统性能分析方法论: 统计图谱工具
  15. 张磊《深入剖析Kubernetes》专栏的阅读笔记
  16. 代理服务软件haproxy、nginx、envoy对比,以及开源的API网关项目对比
  17. 蓝绿部署、金丝雀发布(灰度发布)、A/B测试的准确定义
  18. 阿里巴巴的应用限流和服务降级是怎样实现的?|如何打造平台稳定能力
  19. 陈皓《左耳听风》专栏的阅读笔记(持续更新)
  20. 好雨云帮,一款不错的国产开源PaaS
  21. 怎样为软件的不同版本命名?
  22. 怎样选择开源项目的license?
  23. Glusterfs的架构
  24. 怎样设计一个企业级的PaaS平台?
  25. 几种常见的LDAP系统
  26. DNS SRV介绍(一种用DNS做服务发现的方法)
  27. DNS,DNS-Domain Name System
  28. 思科的网络设备
  29. 虚拟化技术汇总
  30. 认证与授权系统的汇总
  31. 高可用实现方法汇总
  32. 编译器汇总
  33. Linux系统的优化方法
  34. CentOS7的一些变化
  35. 分布式系统的一些知识
  36. 计算机编程语言的特性汇总
  37. 网络通信的一些基础知识
  38. PCIE总线的一些知识
  39. 操作系统的API
  40. 网卡的一些知识
  41. Linux系统的构建过程
  42. 数据结构与算法
  43. CPU的相关知识

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球