【问题标题】:How to communicate securely to a k8s service via istio?如何通过 istio 安全地与 k8s 服务通信?
【发布时间】:2021-11-23 06:53:30
【问题描述】:

我可以通过以下方式与同一命名空间中的另一个服务通信:

curl http://myservice1:8080/actuator/info

在吊舱内。

该应用程序未配置 TLS,我很好奇我是否可以通过虚拟服务访问该 pod,以便我可以使用此 Istio 功能:

curl https://myservice1:8080/actuator/info

我们有 Istio virtualservice 和网关。对 pod 的外部访问由它管理并且工作正常。如果可能,我们只是想通过https 到达另一个 pod,而无需重新配置应用程序。

【问题讨论】:

  • DestinationRules 允许您指定到达目的地时要使用的 TLS 证书。检查出。 (附带说明:您的解释有点含糊,没有明确解释,是否每一面都有服务代理,是否是自签名证书等,人们可以假设的太多了,我建议您在问题中提供了最详细的信息)

标签: istio envoyproxy


【解决方案1】:

如何通过 istio 安全地与 k8s 服务通信?

回答标题下的问题-会有很多可能,但你应该在开头Understanding TLS Configuration

Istio 最重要的功能之一是能够锁定和保护进出网格和在网格内的网络流量。但是,配置 TLS 设置可能会令人困惑,并且是错误配置的常见来源。本文档试图解释在 Istio 中发送请求时涉及的各种连接以及如何配置它们相关的 TLS 设置。请参阅TLS configuration mistakes,了解一些最常见的 TLS 配置问题的摘要。

有许多不同的方法来保护您的连接。这完全取决于您的具体需求和设置。

我们有 istio 虚拟服务和网关,对 pod 的外部访问由它管理并正常工作。如果可能,我们只是想通过 https 访问另一个 pod,而无需重新配置应用程序

至于虚拟服务和网关,您将找到一个示例配置in this article。您可以找到single hostmultiple hosts 的指南。

如果可能,我们只是想通过 https 访问另一个 pod,而无需重新配置应用程序。

在这里您很可能可以申请outbound configuration

虽然入站配置了预期的流量类型和处理方式,但出站配置控制网关将发送的流量类型。这是由 DestinationRule 中的 TLS 设置配置的,就像默认情况下来自 sidecarsauto mTLS 的外部出站流量一样。

唯一的区别是您在配置时应该小心考虑Gateway 设置。例如,如果 Gateway 配置了 TLS PASSTHROUGHDestinationRule 配置了 TLS 发起,那么您最终将得到 double encryption。这可行,但通常不是所需的行为。

绑定到网关的VirtualService 也需要注意ensure it is consistentGateway 定义。

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 2012-02-27
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多