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

举报
咖啡运维 发表于 2020/04/30 18:05:47 2020/04/30
【摘要】 基于华为云OBS存储能力,增强配置中心可用性到99.99%

一、背景说明   

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

二、方案简述

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

三、预期效果   

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

四、实现步骤

步骤一:CCE创建PVC   

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

image.png

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

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

image.png

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

image.png


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

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


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

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

image.png


2、添加云存储

image.png

挂载路径:/opt/iot/apolloconfigcache

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


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

image.png


场景二:

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

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

image.png

可复制,注意格式:

obs-pvc-name:
    description: pvc名字
    label: pvc


2、tosca模板设置挂载路径

image.png

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

第一部分:

                    - 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

image.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。