如何以安全的方式在Kubernetes中的服务之间进行通信

时间:2019-04-30 06:39:37

标签: api kubernetes microservices access

我在Kubernetes中运行了一些node.js微服务,现在我需要找到一种在它们之间进行通信的方法。我当时想公开一个只能从其他Pod内部访问的端点。我一直在搜索数小时,但没有找到足够安全的解决方案。有没有办法使它像这样工作?谢谢!

3 个答案:

答案 0 :(得分:2)

如果您希望只能从选定的Pod访问服务,则可以使用Network Policies。它们允许定义哪些Pod可以与网络级别的Pod对话。例如,您可以通过入口公开您的服务,并且仅允许入口控制器与您的应用程序对话。这样,您可以确保您的应用程序只能通过入口(带有身份验证)才能使用,而不能通过其他方式使用。

仅某些网络插件支持网络策略:

  • 卡里科
  • 打开vSwitch
  • Cilium
  • 编织
  • 罗马尼亚

答案 1 :(得分:2)

  

以安全的方式在Kubernetes中的服务之间进行通信

从本质上讲,Kubernetes不为加密通信服务提供双向TLS解决方案,这就是Istio与mutual-tls-authenticatione一起为平台提供此功能的地方。

答案 2 :(得分:1)

只需将“群集ip”用作服务类型。这样可以使您的服务在群集中公开。您可以在Http上按服务名称使用服务。

对于正在公开讨论的任何服务,您可能需要使用负载均衡器服务类型或入口控制器。