在Kubernetes的应用层上进行服务发现的最佳实践是什么?

时间:2019-05-25 23:02:02

标签: kubernetes istio

我有3个申请。

网关,ServiceA和ServiceB。

每个应用程序都位于其自己的名称空间中。只要在这三者中的任何一者上推送到CI / CD服务器,就会根据分支名称进行部署。

示例:

  1. 在ServiceA存储库中创建一个新分支(功能1)。
  2. 进行并进行一些更改
  3. 构建服务器将具有唯一服务名称的feature-1分支构建并部署到Kubernetes集群。
  4. 如果未找到,则构建服务器将在服务B和网关的分支feature-1上查找默认值develop。对于网关,它从feature-1创建一个develop并将其部署。
  5. 然后,网关需要从feature-1知道ServiceA的DNS URL,以便能够对其进行调用。

所以我的问题是如何使用kubernetes在应用程序lvl上进行服务发现?

1 个答案:

答案 0 :(得分:0)

我认为有两种方法可以实现。

1)查询来自Kubernetes主站的所有服务,其API等效于kubectl get services --all-namespaces。然后,您将需要配置一些逻辑以选择正确的服务。 为此,您可以使用例如SelectortargetPort或指定ClusterIP。 可以在documentation中找到更多详细信息。

2)将从每个分支构建的应用程序放置在新的名称空间中,并允许它们在名称空间中路由至其惯用名称,而无需更改应用程序。在documentation中有更多信息。