如何使用SSL在Kubernetes中配置Flask ws?

时间:2019-06-27 16:35:48

标签: ssl flask kubernetes gunicorn

我有一个容器化的Flash应用程序(在Internet中公开的简单Web服务),其通过以下方式通过gunicorn启用了SSL:

CMD ["gunicorn", "--certfile", "/var/tmp/fullchain.pem", "--keyfile", "/var/tmp/key.pem", "__init__:create_app()", "-b", ":8080"]

我有一个机器人,每3个月更新一次“让我们使用此路径加密证书”。

现在,我正在创建一个Kubernetes集群,以使该应用程序协调副本。

在相关的question中,我已经看到一些入口控制器提供了此证书创建/续订功能,因此不再需要映射到.pem文件。还有一个证书管理器可以做到这一点。

现在,我不知道我是否需要枪灰石,或者配置它以运行应用程序的最简单和推荐的方法是什么。我也在为集群选择入口控制器。

2 个答案:

答案 0 :(得分:1)

  

现在我不知道我是否需要干姜。

Gunicorn类似于Java Tomcat,它还可以提高python Web服务器的性能,因此也建议在不使用SSL的情况下使用Gunicorn。

如果同一集群中还有其他服务要与Flask服务器通信,并且要保护该连接,则应使用SSL配置Gunicorn。如果没有,我认为将入口控制器与证书管理器一起使用会很方便。

  

我也正在为我的集群选择一个入口控制器。

好吧,我认为cert-manager offical doc可以为您提供帮助,它可以使用Nginx入口控制器部署cert-manager。

答案 1 :(得分:1)

从理论上讲,您无需退出当前设置:HTTPS上显示的Flask应用程序。
例如,NGINX入口控制器可以将(加密的)TLS数据包直接传递到上游服务器(在您的情况下为Gunicorn)使用SSL Passthrough功能。

但是绝对可以采用建议的Kubernetes方式进行操作,最好为Ingress启用TLS(证书管理器插件可以帮助您从“加密”之类的源中获取证书)