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

哎码 发布于 2019/11/07 09:50
阅读 247
收藏 1

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

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

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

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

加载中
1
_snake_
_snake_

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

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

哎码
哎码
好的,多谢指点,我去试试
0
_snake_
_snake_

你这问题简单.重点在maxUnavailable

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

返回顶部
顶部