k8s下的eureak服务注册失败(cannot execute request on any known server)解决

简介: k8s下的eureak服务注册失败(cannot execute request on any known server)解决

问题场景


  项目使用了Spring Cloud 微服务框架并利用kubernetes(简称k8s)进行容器编排的。有一天查看Eureka Server监控页面,发现有个serviceid对应的服务副本数只有2个,正常应该是3个的,可是只注册了2个。


 

 

  在Master上使用kubectl logs命令对这个模块的pod进行日志查看,发现有2个pod运行正常,但是另外一个pod的日志一直在报:cannot execute request on any known server。之前还是好好的,怎么突然就不行了,其他2个pod运行正常,也能注册上,说明该模块的镜像和eureka server是没有问题的。而服务的注册是要发送网络请求进行通信的,因此很有可能是该pod的网络出现了问题(业务模块运行在docker容器内),导致有一个注册不上。为此,有以下2个办法可以解决注册不上的问题:


1、使用 kubectl 重新创建该服务对应的Deployment


#删除 deployment
kubectl delete -f xxx-dep.yaml
# 创建deployment
kubectl create -f xxx-dep.yaml


2、找到运行异常pod的服务器并使用docker命令停止容器


#查找特定容器信息
docker ps|grep xxxx
# 停止该容器
docker stop 容器ID
#再次查看特定容器信息
docker ps|grep xxxx


  虽然已经调用过停止命令,但是再次使用docker ps命令查看该容器时,你会发现相同名字的容器依然在。这是因为k8s会自动重新


创建pod中的这个业务容器(pod是k8s调度的最小单元,一个pod通常由一个或多个业务容器+pause容器组成),这个就是k8s作为容器编排工具的强大之处。


  此时刷新Eureka Server的监控页面,发现又成功注册上来了一个服务,达到了3个,注册失败问题解决。


从对用户的影响大小角度来看,推荐使用第二种方式,服务器开销最小,又不会影响原先2个服务。如果重新创建deployment的话,将导致有一段时间该模块无法提供服务。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Prometheus 监控 Kubernetes
如何用 Prometheus Operator 监控 K8s 集群外服务?
如何用 Prometheus Operator 监控 K8s 集群外服务?
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
132 0
|
6月前
|
存储 Kubernetes 应用服务中间件
【K8S系列】深入解析无状态服务
【K8S系列】深入解析无状态服务
233 2
|
6月前
|
存储 Kubernetes 网络协议
【K8S系列】深入解析有状态服务
【K8S系列】深入解析有状态服务
132 1
|
17天前
|
Kubernetes Linux Windows
kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)
kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)
227 0
|
4月前
|
Kubernetes Shell Linux
linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
60 0
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】使用k8s创建nginx服务—通过ingress类型暴露
【云原生】使用k8s创建nginx服务—通过ingress类型暴露
|
26天前
|
人工智能 监控 Serverless
如何基于ACK Serverless快速部署AI推理服务
通过上述步骤,可以在ACK Serverless上快速部署AI推理服务,实现高可用、弹性扩展的服务架构。
19 1
|
26天前
|
Kubernetes 网络协议 Docker
K8S核心插件-coredns服务
K8S核心插件-coredns服务
15 0
|
1月前
|
Kubernetes Nacos 微服务
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
24 1
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决

推荐镜像

更多