作者张晋涛,API7.ai 云原生技术专家,Apache APISIX PMC 成员,Apache APISIX Ingress Controller 项目维护者。
云原生场景下是否需要服务发现
背景
微服务架构是当前最为流行的应用架构之一。 应用被拆分为多个服务组件,通过相互配合共同完成业务的具体逻辑和功能。
随着应用规模的增加和微服务拆分粒度的不同,一套系统内会包含很多个服务组件。 要让这些组件之间可以很好的协同,并且能彼此识别到,通常都需要引入服务注册和发现组件。
之前我们写了一篇文章专门来介绍微服务架构中的服务发现, What Is Service Discovery in Microservices - API7.ai
简单来说,通过引入了服务发现组件,微服务架构中的组件,只需要关注其他组件的名称即可,而无需关注其他组件的部署位置,或者部署 IP 等信息。 通过服务发现组件可以动态的进行获取。
Kubernetes 中的服务发现
在 Kubernetes 环境中,Pod 是最小的调度单元。 而且在 Kubernetes 中,Pod 的 IP 不具备持久性,常常会发生变更。彼此协同的