容器部署场景下如何保障配置中心可用性达到99.99%

网友投稿 568 2022-05-30

一、背景说明

开源Apollo Client实现了把配置缓存到本地目录的逻辑,从配置中心拉取不到配置时可以从本地获取。但是,在容器部署场景下,微服务重启,扩容等会存在实例漂移的情况,漂移后会拉取不到配置,或者拉取的不是最新配置,配置中心宕机或者网络断联后则影响微服务正常启动。配置中心可靠性成为各云服务可靠性最短的那块木板。为了解决以上问题,提供基于华为云OBS的配置可靠性方案。

二、方案简述

通过华为云CCE绑定一个OBS桶,给每个微服务的工作负载配置缓存路径挂载到OBS上,保证配置中心失联,实例在漂移的情况下可以从OBS读取配置,提高配置可靠性

三、预期效果

使用了该功能的微服务,如果Apollo配置中心失联,微服务唯一失去的是通过Apollo界面修改配置,而不影响基本功能,紧急情况下通过修改OBS的配置文件,重启微服务也能达到修改配置效果,提提升配置可靠性到99.99%

四、实现步骤

步骤一:CCE创建PVC

1、登录华为云--->云容器引擎(CCE)--->资源管理--->存储管理--->对象存储卷--->创建对象存储卷。

注意:这个地方建议创建对象存储,不要选导入已有的存储,因为会挂载到工作负载上,导入已有的存储会把原有存储里面的内容共享到Docker里面

2、创建一个对象存储卷。

注:华为云提示更新秘钥文件,按照指导更新即可,其中可以跳过重启工作负载(后续挂载路径时可以或重启工作负载)

PVC(PersistentVolumeClaim)是K8s中概念,需要了解可以搜索一下。

注:步骤一中创建对象存储卷可以提前做,避免真实操作中出现啥问题,提前做可以提前发现,提前让华为云解决

步骤二:工作负载挂载云存储

1、登录华为云--->工作负载--->选择需要挂载的微服务--->更新升级--->高级设置--->数据存储--->云存储--->添加云存储

2、添加云存储

挂载路径:/opt/iot/apolloconfigcache

注:暂时不需要提交,还需要添加环境变量

3、通过环境变量添加Apollo-Client缓存目录,环境变量名称:APOLLO_CACHEDIR,环境变量值:/opt/iot/apolloconfigcache

场景二:

修改tosca模板,通过AOS部署的时自动挂载好缓存目录

1、tosca模板添加输入变量,PVC名字,即步骤一创建的PVC名称

可复制,注意格式:

obs-pvc-name:

description: pvc名字

label: pvc

容器部署场景下如何保障配置中心可用性达到99.99%

2、tosca模板设置挂载路径

模板示例:(粘到模板里注意格式和缩进)

第一部分:

- name: apollo-cachedir

mountPath: /opt/iot/apolloconfigcache

第二部分:

- name: apollo-cachedir

persistentVolumeClaim:

claimName:

get_input: obs-pvc-name

name: apollo-cachedir

3、tosca模板设置Apollo-Client缓存目录

在tosca环境变量部分添加Apollo-Client缓存路径,name:APOLLO_CACHEDIR,value:/opt/iot/apolloconfigcache

对象存储服务 OBS 容器

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:WEB架构的演变
下一篇:低价永远不是生存之道,智能家居唯有打通生态才能活下去
相关文章