ITPub博客

首页 > 云计算 > 开源云工具 > 在Rainbond上部署高可用Apollo集群

在Rainbond上部署高可用Apollo集群

原创 开源云工具 作者:rainbond 时间:2022-04-11 15:41:36 0 删除 编辑





# 一、背景信息


当前文档描述如何通过云原生应用管理平台 [Rainbond](https://www.rainbond.com) 一键安装高可用 Apollo 集群。这种方式适合给不太了解 Kubernetes、容器化等复杂技术的用户使用,降低了在 Kubernetes 中部署 Apollo 的门槛。


## 1.1 Rainbond 与 Apollo 的结合


[Rainbond](https://www.rainbond.com) 是一款易于使用的开源云原生应用管理平台。


借助于它,用户可以在图形化界面中完成微服务的部署与运维。


借助 Kubernetes 和容器化技术的能力,将故障自愈、弹性伸缩等自动化运维能力赋能给用户的业务。


Rainbond 内置原生 Service Mesh 微服务框架,同时与 Spring Cloud、Dubbo 等其他微服务框架也有很好的整合体验。


故而大量的 Rainbond 用户也可能是 Apollo 分布式配置管理中心的用户。


这类用户不必再关心如何部署 Apollo 集群,Rainbond 团队将 Apollo 制作成为可以一键部署的应用模版,供开源用户免费下载安装。


这种安装方式极大的降低了用户使用 Apollo 集群的部署负担,目前支持 1.9.2 版本。


当前的安装方式,默认集成了一套 `PRO` 环境,追加其他环境,参见后文中的高级特性章节。


## 1.2 关于应用模版


应用模版是面向 Rainbond 云原生应用管理平台的安装包,用户可以基于它一键安装业务系统到自己的 Rainbond 中去。无论这个业务系统多么复杂,应用模版都会将其抽象成为一个应用,裹挟着应用内所有组件的镜像、配置信息以及所有组件之间的关联关系一并安装起来。


# 二、前提条件


- 部署好的 Rainbond 云原生应用管理平台:例如 [快速体验版本](https://www.rainbond.com/docs/quick-start/quick-install/?channel=apollo),可以在个人 PC 环境中以启动一个容器的代价运行。


- 可以连接到互联网。


# 三、快速开始


## 3.1 访问内置的开源应用商店


选择左侧的 **应用市场** 标签页,在页面中切换到 **开源应用商店** 标签页,搜索关键词 **apollo** 即可找到 Apollo 应用。


![apollo-1](https://static.goodrain.com/wechat/apollo/apollo-1.png)


## 3.2 一键安装


点击 Apollo 右侧的 **安装** 可以进入安装页面,填写简单的信息之后,点击 **确定** 即可开始安装,页面自动跳转到拓扑视图。


![apollo-2](https://static.goodrain.com/wechat/apollo/apollo-2.png)


参数说明:


| 选择项  | 说明                                 |

| ---- | ---------------------------------- |

| 团队名称 | 用户自建的工作空间,以命名空间隔离                  |

| 集群名称 | 选择 Apollo 被部署到哪一个 K8s 集群           |

| 选择应用 | 选择 Apollo 被部署到哪一个应用,应用中包含有若干有关联的组件 |

| 应用版本 | 选择 Apollo 的版本,目前可选版本为 1.9.2        |


等待几分钟后,Apollo 集群就会安装完成,并运行起来。


![apollo-3](https://static.goodrain.com/wechat/apollo/apollo-3.png)


## 3.3 测试


访问组件 `Apollo-portal-1.9.2` 所提供的默认域名,即可登录 Apollo 控制台,在系统信息中,验证 `PRO` 环境已经就绪。


![apollo-4](https://static.goodrain.com/wechat/apollo/apollo-4.png)


## 3.4 配置


在 Rainbond 中,可以基于图形化界面对 Apollo 集群进行配置。主要包括环境变量、配置文件挂载、插件配置三个方面。


- 环境变量:通过在不同的组件页面中的环境配置中,可以自定义环境变量。比如为 `Apollo-portal-1.9.2` 默认添加了 `APOLLO_PORTAL_ENVS=pro` 用于定义当前 portal 纳管的环境。


- 配置文件:通过在不同的组件页面中的环境配置中,可以为组件设置配置文件。

  

  - `Apollo-portal-1.9.2` 挂载 `/apollo-portal/config/apollo-env.properties` 用于定义不同环境的 meta 地址。

  

  - `Apollo-config-1.9.2` 挂载 `/apollo-configservice/config/application-github.properties` 用于声明当前环境 config 和 admin 的服务地址。


- 插件配置:在 Rainbond 中通过为 `Apollo-portal-1.9.2` `Apollo-config-1.9.2` 安装出口网络治理插件来定义下游调用地址,这是一种 Service Mesh 微服务治理的实现方式。通过定义下游服务的域名,来访问下游服务的指定端口。如在 `Apollo-portal-1.9.2` 的插件中,访问 `Apollo-config-1.9.2`  8080 端口的域名为 `apollo-config-pro` ,这也是配置中只定义域名,而不需要定义端口的原因。


# 四、高级特性


## 4.1 实例数量伸缩


Apollo 配置中心所包含的 `Apollo-portal-1.9.2` `Apollo-config-1.9.2` `Apollo-admin-1.9.2` 组件均使用 Deployment 控制器部署,通过 Rainbond 内置的 Service Mesh 微服务框架实现服务发现与通信。故而这三个组件均可以一键扩展多个实例,实现集群化部署。


以 `Apollo-portal-1.9.2` 为例,点击 **伸缩** ,修改 **实例数量** 后,点击 **设置** 即可。


![apollo-5](https://static.goodrain.com/wechat/apollo/apollo-5.png)


## 4.2 追加环境


Apollo 配置中心支持对接多套环境,并使用统一的 Portal 页面进行管理。基于 Rainbond 一键安装而来的 Apollo 集群默认附带了 `PRO` 环境。接下来讲解在 Rainbond 场景中,如何追加一套 `DEV` 环境,假设在 `DEV` 环境中,通过 `apollo-config-dev`、`apollo-admin-dev`来分别访问 `Apollo-config-Dev` `Apollo-admin-Dev` 组件。


1. 再部署一套 Apollo 集群,并去除新集群中 `Apollo-portal-1.9.2` `ApolloPortalDB`组件。为了便于管理,修改 `Apollo-config-1.9.2` `Apollo-admin-1.9.2` 组件的名称。添加 `Apollo-portal-1.9.2` 到 `Apollo-config-Dev` `Apollo-admin-Dev` 的依赖。拓扑展示如下:


> 注意,这个步骤会触发连接信息环境变量冲突的情况,记得为 `Apollo-config-Dev` `Apollo-admin-Dev` 组件的对内端口,重新定义你喜欢的名字。


![apollo-6](https://static.goodrain.com/wechat/apollo/apollo-6.png)


2. 在 **环境配置** 页面,修改 `Apollo-config-Dev` 的配置文件 `/apollo-configservice/config/application-github.properties` ,将 config 和 admin 的服务地址修改成为预期的值。


![apollo-10](https://static.goodrain.com/wechat/apollo/apollo-10.png)


3. 分别进入`Apollo-config-Dev` `Apollo-portal-1.9.2` 的插件页面,为其出口网络治理插件修改配置,Rainbond 内置的微服务框架,通过设定的域名(Domains)来定义下游服务的访问地址。以 `Apollo-portal-1.9.2` 为例,需要配置到 `Apollo-config-Dev` `Apollo-admin-Dev` 的访问域名。


![apollo-7](https://static.goodrain.com/wechat/apollo/apollo-7.png)


配置完成后点击 **更新配置**, `Apollo-portal-1.9.2` 就可以通过 apollo-config-dev 这个域名访问到 `Apollo-config-Dev`。


同理,`Apollo-config-Dev` 需要配置到 `Apollo-admin-Dev` 的访问域名。配置完成后更新配置。


4. 修改 `Apollo-portal-1.9.2` 的配置,来加入新的 `DEV` 环境。


修改环境变量 `APOLLO_PORTAL_ENVS` 的值,加入 `dev` 环境。


![apollo-8](https://static.goodrain.com/wechat/apollo/apollo-8.png)


修改配置文件 `/apollo-portal/config/apollo-env.properties` ,写入 `dev` 环境的 meta 地址。


![apollo-9](https://static.goodrain.com/wechat/apollo/apollo-9.png)


更新 `Apollo-portal-1.9.2` 组件,使所有配置生效。查看系统信息,验证环境加入完成。


![apollo-11](https://static.goodrain.com/wechat/apollo/apollo-11.png)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70008902/viewspace-2886518/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
不用懂 Kubernetes 的云原生应用管理平台

注册时间:2021-10-22

  • 博文量
    91
  • 访问量
    50177