提问者:小点点

服务证书


从虚拟机转移到库伯内特斯。

我们在多个VM上运行服务。服务在多个VM上运行,并且在它们前面有VIP。客户端将访问VIPVIP将流量路由到服务。在这里,我们使用SSL证书VIP,VIP也使用HTTPSVM。

在这里,服务将使用JKS文件部署到VM中。该JKS文件将具有公开HTTPS的证书,并与启用SSL数据库通信。

如何在库伯内特斯集群实现同样的事情?需要HTTPSVIP和服务,以及从服务SSL启用数据库的通信。


共1个答案

匿名用户

取决于你运行库伯内特斯的平台(本地、AWS、GKE、GCE等),你有几种方法可以做到这一点,但我将描述一种适用于所有平台的解决方案——使用HTTPS终止的入口。

因此,在库伯内特斯中,您可以使用入口对象在集群中提供对应用程序的访问。它可以提供负载平衡、HTTPS终止、按路径路由等。在大多数情况下,您可以使用基于Nginx的入口控制器。此外,如果需要,它还提供TCP负载平衡和SSL直通。

为了提供从用户到您的服务的路由,您需要:

  1. 将您的应用程序部署为Pod和Service的组合。
  2. 部署入口控制器,它将管理您的入口对象。
  3. 为您的证书创建一个秘密。
  4. 创建一个将指向您的服务并TLS设置的入口对象,要求入口在您的证书中使用您的秘密,如下所示:

spec: tls:host:-foo.bar.com的秘密名称:foo-秘密

集群内服务之间的加密通信呢?您可以使用与机密相同的方案为所有服务提供SSL密钥,并设置服务以使用应用程序的HTTPSendpoint而不是HTTP。从技术上讲,这与在没有库伯内特斯的安装中使用https上游相同,但Nginx的所有配置都将根据您的Service入口对象配置自动提供。