我在 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(使用前将#替换为@)