3

我试图弄清楚如何跨 Kubernetes 集群为 gRPC 服务器和客户端动态提供 SSL 证书。

我当前的实现断言在 pod 内提供了 CA 证书(用于客户端)、服务器的证书和密钥。证书将在 kubernetes 中作为机密创建。

虽然使用自签名证书足以进行开发,但我想为客户端和服务器动态创建证书以使用或找到另一种在它们之间提供加密通信的方式。我的第一个想法是为此目的使用像 linkerD 这样的服务网格,但我不太确定从集群 A 到集群 B 的通信是否会一直加密,因为客户端 2 必须使用入口网关。

跨集群通信

使用服务网格时,是否必须将 gRPC 配置为不安全的,因为所有流量都将通过服务代理进行路由?

如果你能在这方面帮助我,那就太好了。

问候, Hown3d

4

1 回答 1

2

当您说在 K8s 中运行的服务器时,它将是服务和部署。

如果 K8s 内部应用程序(客户端)连接到服务器,它必须使用服务名称作为 DNS,如果您使用任何服务网格mTLS流量,如果启用,它将被加密。

当您说入口网关时,是指 Nginx 入口网关还是 Istio 入口网关。

如果您使用的是 Istio 入口网关,您也可以在网关级别配置 mTLS,例如

https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress/#configure-a-mutual-tls-ingress-gateway

如果您打算使用多集群linkerd是一个不错的选择,您可以使用mTLS集群和西集群中加密流量。

https://linkerd.io/2.10/tasks/multicluster/

我想为客户端和服务器动态创建证书以使用

您可以使用 cert-manager :https://cert-manager.io/docs/configuration/selfsigned/

于 2022-01-15T22:21:20.253 回答