我已经在kubernetes集群上部署了ocelot和consul。Ocelot 充当 api 网关,将请求分发给内部服务。而 consul 负责服务发现和健康检查。(顺便说一句,我按照 consul 的官方文档将 consul 部署在 kubernetes 集群上)。
而我的服务(即asp.net core webapi)也部署到了kubernetes集群,有3个副本。我没有创建 kubernete 服务对象,因为这些 pod 只会被同一集群中的 ocelot 消耗。
架构如下所示:
ocelot
|
consul
/\
webapi1 webapi2 ...
(pod) (pod) ...
此外,IMO,consul 可以在 pod 死亡时取消注册 pod(webapi)。所以我认为不需要创建 kubernete 服务对象
现在我的问题是:在 pod 启动时将每个 pod(webapi) 注册到 consul 是否正确?或者我应该在这些 pod (webapi) 前面创建一个 kubernete 服务对象并将服务对象注册到领事?