<p>I have a containerized Flash application (a simple webservice exposed in the internet) with SSL enabled by gunicorn through:</p>

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

<p>I have a bot that renews Let's Encrypt certificates in this path every 3 months.</p>

<p>Now I am creating a Kubernetes cluster to put this application an orchestrate the replicas.</p>

<p>In a related <a href="https://stackoverflow.com/questions/56665355/configure-ssl-in-cluster-of-kubernetes">question</a> I've seen some ingress controllers provide this certificate creation/renew functionality so I would not need to map to .pem files anymore. There is also cert-manager that does that.</p>

<p>Now I don't know if I need gunicorn or what is the easyest and recommended way to configuring that to run the application. I am also in the process of chosing an ingress controller for my cluster.</p>

staticdev
<blockquote>
  <p>Now I don't know if I need gunicorn.</p>
</blockquote>

<p>Gunicorn is like java Tomcat, and it can also improve performance for python web server, so using Gunicorn is also recommend without SSL. </p>

<p>If you have other service in same cluster want to talk to your Flask server, and you want to protect that connection, you should config Gunicorn with SSL. If not, I think using an ingress controller with certificate manager is convenient.</p>

<blockquote>
  <p>I am also in the process of chosing an ingress controller for my cluster.</p>
</blockquote>

<p>Well, I think cert-manager <a href="https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/" rel="nofollow noreferrer">offical doc</a> can help you, it deploy cert-manager with Nginx ingress controller.</p>
