如何在 kubernetes 应用程序上获取 ssl?

2024-03-10

我在 kubernetes 上部署了一个简单的流星应用程序。我将外部 IP 地址与服务器关联起来,以便可以从集群内部访问它。现在,我准备将其公开到互联网并保护它(使用 HTTPS 协议)。谁能为这部分提供简单的说明?


在我看来库贝乐高 https://github.com/jetstack/kube-lego是 GKE 的最佳解决方案。看看为什么:

  • Uses 让我们加密 https://letsencrypt.org/ as a CA
  • 全自动注册和续订
  • 单个 ConfigMap 对象中的最少配置
  • nginx 入口控制器 https://github.com/nginxinc/kubernetes-ingress (see example https://github.com/jetstack/kube-lego/tree/master/examples/nginx)
  • GKE 的 HTTP 负载均衡器 https://cloud.google.com/container-engine/docs/tutorials/http-balancer (see example https://github.com/jetstack/kube-lego/tree/master/examples/gce)
  • 完全支持多个域,包括在一个 IP 上虚拟托管多个 https 站点(具有 nginx-ingress-controller 的 SNI 支持)

配置示例(就是这样!):

kind: ConfigMap
apiVersion: v1
metadata:
  name: kube-lego
  namespace: kube-lego
data:
  lego.email: "your@email"
  lego.url: "https://acme-v01.api.letsencrypt.org/directory"

Ingress 示例(您可以创建更多):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: site1
  annotations:
    # remove next line if not using nginx-ingress-controller
    kubernetes.io/ingress.class: "nginx"
    # next line enable kube-lego for this Ingress
    kubernetes.io/tls-acme: "true"
spec:
  tls:
  - hosts:
    - site1.com
    - www.site1.com
    - site2.com
    - www.site2.com
    secretName: site12-tls
  rules:
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 kubernetes 应用程序上获取 ssl? 的相关文章

随机推荐