温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 服务器 > 
  • 云计算 > 
  • 如何解决kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败问题

如何解决kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败问题

发布时间:2021-10-12 11:19:23 来源:亿速云 阅读:130 作者:柒染 栏目:云计算

这篇文章给大家介绍如何解决kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

由于在k8s使用了grpc,所以这里我们集成istio来实现http2的自动发现以及负载均衡,但是随着节点增加,istio之前同步配置时间边长导致第一次启动时,服务启动拉取配置时istio却还没初始化好相关配置,而导致第一次启动失败,错误如下 如何解决kubernetes中集成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 "]

启动时打印信息如下

如何解决kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败问题 这里可以看到第一次检测也是失败,知道成功后才开始启动业务POD

当然也可以将相关命令写到deploy的yml中。

关于如何解决kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI