当托管在GCE上时,我当前是否被迫使用额外的when服务器(nginx)来将所有Kubernete Ingress流量重定向到https?
我希望将Golang应用程序部署到野外。作为一个学习实验,我想我应该使用GCE来托管,使用K8s来部署/扩展。我让deployments和services都像预期的返回流量一样工作,并创建了证书,让加密用于TLS终止。
我现在正在实现一个Ingress,因为Service LoadBalancers似乎已被弃用。在这个阶段,我为入口使用了一个静态IP,用于backend请求,如下所示
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: web-ingress annotations: kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress" ingress.kubernetes.io/ssl-redirect: "true" spec: tls: - secretName: web-ssl backend: serviceName: web servicePort: 80
当然,我希望所有的http流量都通过https/TLS。分配ingress.kubernetes.io/ssl-redirect: "true"条目没有任何区别。作为一种偷偷摸摸的尝试,我想我可以把servicePort改成443。由于我的服务在两个80/443端口上都接受请求,因此返回了有效的响应,但http没有被强制转换为https。
在这个阶段,我猜我需要“咬紧牙关”创建一个nginx Ingress Controller。如果我需要更多服务点,这也有助于使用Lego更新证书,同时创建另一个抽象。
但在此之前,我只是想先检查一下是否没有其他方法?感谢您的帮助。
发布于 2017-07-12 16:38:57
需要一个入口控制器来实现入口清单。如果没有它,安装Ingress清单什么也做不了。Afaik,部署Ingress是HTTP重定向的最佳方式。
您可以使入口将HTTP流量重定向到HTTPS。看看这个tutorial for TLS with traefik和这个tutorial for TLS with nginx。
https://stackoverflow.com/questions/45048465
复制相似问题