kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败
由于在k8s使用了grpc,所以这里我们集成istio来实现http2的自动发现以及负载均衡,但是随着节点增加,istio之前同步配置时间边长导致第一次启动时,服务启动拉取配置时istio却还没初始化好相关配置,而导致第一次启动失败,错误如下 这里有几种方案
- 让服务启动时先暂停5s,再加载配置信息
- 加载配置失败一直重试知道成功
- 修改istio与业务pod启动时间间隔
- 修改dockerfile 检查istio是否启动,启动成功后再启动业务pod
经过评估,方案1需要代码侵入,还是无法完全解决问题, 方案2 也是需要修改业务代码,很多业务都得跟着修改,改动大 方案3 这个在最新版本中的k8s有这个功能,升级有风险 方案4 侵入式小 最后选择方案四,也参考了相关资料 https://github.com/istio/istio/issues/16222
最终需要修改dockerfile来解决,并且将检查istio健康状况改成了检查配置中心是否可用
ENTRYPOINT ["/bin/sh","-c"] CMD ["until curl --head 'http://config-center/info' ; do echo Waiting for Sidecar; sleep 3 ; done ; echo Sidecar available; java -Xmx3200m -Xms3200m -Xmn1600m -jar /app.jar --spring.profiles.active=prod "]
启动时打印信息如下
这里可以看到第一次检测也是失败,知道成功后才开始启动业务POD
当然也可以将相关命令写到deploy的yml中。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AntV 推出全新的图编辑引擎 X6
X6 是蚂蚁金服 AntV 旗下的图编辑引擎,X象形图编辑场景的关系链接,同时 X6 又是 G6 的孪生兄弟,所以沿用了 G6 中的 6,深究一下,6 源于《六度分隔理论》,表达了我们对关系数据、关系网络的敬畏和着迷。 X6 脱胎于蚂蚁实际的业务场景,在此基础上,我们完善了图编辑场景的常用扩展,如小地图、网格系统、对齐线、框选、redo/undo等,内置了图编辑场景的常规交互和设计,如群组、链接桩、节点缩放、旋转、连线交互,并提供了基于 HTML 和 React 低成本定制节点能力。 特性预览 快速上手 只需要掌握创建画布、添加节点/边、更新节点/边、删除节点/边这几个 API 即可开始使用 X6,并且我们已将 X6 所有特性提取到画布的配置项中,系统默认的配置文件 preset.ts 包含 50 多个配置项 300 多行配置代码,您可以基于 X6 的配置能力快速定制出自己的画布。 节点、连线与画布,图编辑核心能力 易定制节点 X6 预置了一些常用节点样式,创建节点时通过 shape 来指定使用哪种图形来渲染节点即可直接使用,而且绝大部分节点样式和交互都可被自定义。 然而,实际业务场景...
- 下一篇
进无止境,AntV 统计图表 G2Plot 1.0 发布
G2Plot是一个开箱即用、易于配置、体验优雅的统计图表库,致力于帮助用户以最小成本生成高质量统计图表。 G2Plot 最初诞生于阿里经济体 BI 产品真实场景的业务诉求。动态、高度不确定是 BI 产品和中台系统业务数据的一个普遍特征,而这种特征对统计图表的功能和体验提出了巨大的挑战。如何能够帮助报表系统和一线前端在复杂数据条件下快速高效地创建统计图表,同时保证图表在各种显示空间和数据状态下的可读性和可用性? 为解决这两个痛点问题,AntV 与DeepInsight、QuickBI 和 FBI,阿里经济体三个优秀 BI 产品技术团队联手打造了 G2Plot。 自去年 11 月发布 0.x 试用版后,G2Plot 经历了 20 多个小版本的迭代优化,图表类型已从最常用的 7 个扩展到 40 多个,在核心 BI 产品真实场景上线验证后终于带来 1.0 正式版。希望我们在数据可视化业务,特别是 BI 产品中的开发和设计经验能够帮助到更多用户轻松制作优雅的统计图表。 特性预览 简单易用 图形语法是统计图表的奠基理论,具有完备、灵活、无限可能的可视表达能力,全球顶级 BI 系统的可视分析实现基...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装