请问k8s滚动升级如何监控SpringBoot的健康检查?

发布于 2022-01-04 16:04:05 字数 266 浏览 922 评论 3

是这样的,我现在希望使用到k8s的滚动升级功能,让服务不停机的情况下升级。

但是我发现每次开启新容器的时候,刚刚有启动日志,没有完全启动,k8s就将旧的容器关掉了。这样的话服务还没有注册到consul(或其它注册中心)上面,甚至有些时候会启动出错。

想问一下有没有什么好的办法,能等待服务注册到consul上面再标记该容器为已启动呢?

我的想法是发送curl请求,确认/actuator/health这个endpoint返回的是up,但是不知道怎么实现了,麻烦给点意见。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

彼岸花ソ最美的依靠 2022-01-07 19:55:53

你这问题简单.重点在maxUnavailable

spec:
  #配置标记k8s1.16必填
  selector:
    matchLabels:
      app: {project}
  #启动应用数量
  replicas: 1
  #从容器启动到应用正常提供服务
  minReadySeconds: 10
  #策略
  strategy:
    #更新类型
    type: RollingUpdate
    #滚动更新
    rollingUpdate:
      #更新时允许最大激增的容器数
      maxSurge: 1
      #更新时允许最大 unavailable 容器数
      maxUnavailable: 0

丢了幸福的猪 2022-01-07 18:48:29

好的,多谢指点,我去试试

傾城如夢未必闌珊 2022-01-07 16:55:07

这里是存活检测,我写的是http的,还支持其他类型的。可以百度

        #存活探针
        livenessProbe:
          #get方式
          httpGet:
            #检测链接
            path: {k8sWorkingCheck}
            #端口
            port: 80
            #方式
            scheme: HTTP
          #初始化
          initialDelaySeconds: 60
          #检测间隔
          periodSeconds: 5
          #超时时间
          timeoutSeconds: 5
          #应用错误判定次数
          failureThreshold: 3

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文