请问k8s滚动升级如何监控SpringBoot的健康检查?
是这样的,我现在希望使用到k8s的滚动升级功能,让服务不停机的情况下升级。
但是我发现每次开启新容器的时候,刚刚有启动日志,没有完全启动,k8s就将旧的容器关掉了。这样的话服务还没有注册到consul(或其它注册中心)上面,甚至有些时候会启动出错。
想问一下有没有什么好的办法,能等待服务注册到consul上面再标记该容器为已启动呢?
我的想法是发送curl请求,确认/actuator/health这个endpoint返回的是up,但是不知道怎么实现了,麻烦给点意见。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你这问题简单.重点在maxUnavailable
spec:
#配置标记k8s1.16必填
selector:
matchLabels:
app: {project}
#启动应用数量
replicas: 1
#从容器启动到应用正常提供服务
minReadySeconds: 10
#策略
strategy:
#更新类型
type: RollingUpdate
#滚动更新
rollingUpdate:
#更新时允许最大激增的容器数
maxSurge: 1
#更新时允许最大 unavailable 容器数
maxUnavailable: 0
好的,多谢指点,我去试试
这里是存活检测,我写的是http的,还支持其他类型的。可以百度
#存活探针
livenessProbe:
#get方式
httpGet:
#检测链接
path: {k8sWorkingCheck}
#端口
port: 80
#方式
scheme: HTTP
#初始化
initialDelaySeconds: 60
#检测间隔
periodSeconds: 5
#超时时间
timeoutSeconds: 5
#应用错误判定次数
failureThreshold: 3