大多数 Kubernetes 用户都有可能用到集群外部的服务。如果位于不同环境中的应用连接相同的外部端点,并且您不打算将外部服务引入 Kubernetes 集群,那么在代码中直接使用外部服务端点是完全可以的。然而,很多时候情况并非如此。数据库就是一个很好的例子。虽然一些云原生数据库(如 Cloud Firestore 或 Cloud Spanner)对所有访问均使用一个端点,但大多数数据库对不同实例都有单独的端点。
例如,一个常见场景是在集群外部托管自己的数据库,例如在 Google 计算引擎实例中。如果在 Kubernetes 内部和外部分别运行一些服务,或者需要在 Kubernetes 允许的基础上获得更多定制或控制,通常可采用上述这种方式。
希望未来某个时候您可以将所有服务都移入集群内,但在此之前将是“内外混用”的状态。你可以使用静态 Kubernetes 服务来缓解上述痛点。
一般情况下,是不推荐直接访问数据库的直接访问,可以通过endpoint的方式