背景
Kubernetes初学,在集群上测试部署了一套Kuberntes的单Master版本,并在其中部署了我们的一整套微服务,测试环境平稳运行了几个月,期间有些Worker节点也偶尔挂了几次,都没有影响到服务的正常运行,都能快速进行故障迁移,算是尝到了一点甜头。但是在今年年初Master节点由于内存不足出现了故障,却使整个微服务无法正常运作,造成的影响巨大。
这和之前了解到的情况,即:“master故障的时候,其余节点的容器均维持原有状况继续运行,只是动态调度能力失效” 这一描述有很大出入。
原因分析
我们的应用平台内部架构采用SpringCloud的微服务形式,同时在迁移进Kubernetes集群时,去除了Eureka转而依赖Kubernetes的内部DNS机制作为服务发现。我们使用的是CoreDNS。
即:
// 为所有内部服务创建同名Service, 并且统一通过80端口转发即可实现如下效果
// 这里的url相当于内部域名,解析至ClusterIP Service
@FeignClient(name="sss-service",