k8s部署实例无法启动情况总结

问题原因:健康检查失败

在使用k8s进行部署springcloud项目的时候经常遇见一些服务无法启动的情况,只是因为服务的健康检查没有通过。

这些健康检查包括 数据库、redis、apollo、kafka等等这些第三方的软件。
具体定位方式:

查看当前的服务状态:一般这个时候会报503错误,就是服务没有启动

kubectl describe pod serviceName -n dev-phoenix

解决办法:定位失败原因

查看具体的失败原因需要进入docker里面去执行查询:

kubectl exec -it serviceName /bin/bash -n namespace
#执行查询
curl http://localhost:port/actuator/health

查看具体返回值可以看出来服务启动失败,并且会报告出来具体的失败原因,可以看到 error 指出来是 redis无法连接导致的。
这个问题在本地发现不了,因为本地启动了redis了,但是本身这个项目并没有用到redis,部署到测试环境的时候就会报错了。

解决办法就是把redis的依赖包给去掉,然后问题就解决了。
这里有一个解决问题的思路就是,本地不要启动redis,kafka这类的服务,这样保证本地服务跟线上服务环境一致,这样的话本地启动项目访问健康接口就可以定位出问题所在了,如果在测试环境就需要用很多k8s的命令来去定位问题。

{
    status: "DOWN",
        details: {
    redis: {
        status: "DOWN",
            details: {
            error: "org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379"
        }
    }
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值