【问题标题】:Kubernetes for securing service endpoints?Kubernetes 用于保护服务端点?
【发布时间】:2019-03-17 06:50:06
【问题描述】:

所以我有一个使用 Eureka 服务发现构建的非常小的微服务架构。我现在面临的问题是我只希望我的服务端点接受来自我的 api 网关的请求,因为现在您可以直接向服务发出请求并点击该服务端点。这是 Kubernetes 可以解决的问题吗?或者有没有更实用的方法?

【问题讨论】:

  • 你的意思是你只想公开api网关服务吗?将所有其他服务锁定为仅限内部通信?
  • @dijksterhuis 没错。
  • 您不需要 Kubernetes 来执行此操作。你可以用 docker 完成同样的事情。很确定您可以将每个服务连接到内部网络(包括 api 网关),然后将 api 网关容器暴露给主机。使用 kubernetes,您可能需要查看 pod 网络和入口控制器(k8s 中的入口伤害了我的大脑,所以我个人避免了它)。
  • 我对 Eureka 或您的服务架构的了解为零。但我的观点是,Kubernetes 只是这样做的一种方式。 Eureka 没有配置选项来限制服务发现到内部还是外部?
  • @dijksterhuis 我找不到任何关于 Eureka 内部设置的内容,但非常感谢你,考虑到我正在使用的东西,我会考虑与 docker 一起做。 Kubernetes 似乎对我的项目来说有点矫枉过正了,哈哈

标签: spring kubernetes microservices devops netflix-eureka


【解决方案1】:

您应该使用网络策略来控制服务之间的流量。

【讨论】:

    【解决方案2】:

    在 Kubernetes 中,您要在内部公开的服务使用服务类型 ClusterIP。这无论如何都是默认的,这意味着服务只能在集群内访问。您的 api 网关公开为负载均衡器服务类型,然后从外部世界获取流量并在内部与服务对话。根据您的云提供商,您可以在负载均衡器前面使用防火墙,因为您可以通过简单地暴露负载均衡器来破坏安全性。例如azure kubernetes,您可以使用应用程序网关。您还可以将 api 网关替换为入口控制器。它是非常强大的反向代理控制器,您可以直接向流量公开,并在内部与您的服务对话。

    您确实需要了解概念,因此我建议您点击以下链接

    https://kubernetes.io/docs/concepts/services-networking/service/

    https://blog.getambassador.io/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 2019-07-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多