容器部署场景下如何保障配置中心可用性达到99.99%
一、背景说明
开源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
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
- 点赞
- 收藏
- 关注作者
评论(0)