首页 文章

在GCE上使用Kubernete Ingress重定向/强制TLS

提问于
浏览
0

我目前是否被迫使用额外的网络服务器( nginx )在GCE上托管时将所有Kubernete Ingress流量重定向到https?

我正在寻求将Golang应用程序部署到野外 . 作为一个学习实验,我想我会使用GCE来托管和K8s进行部署/扩展 . 我有 deploymentsservices 全部按预期返回流量并使用Lets Encrypt for TLS终止创建证书 .

我现在正在实施 Ingress ,因为 Service LoadBalancers 似乎已被弃用 . 在这个阶段,我使用Ingress的静态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 .

在这个阶段,我猜我需要"bite the bullet"并创建一个 nginx Ingress Controller . 如果我需要更多服务点,这也将有助于使用 Lego 更新证书以及创建另一个抽象 .

但在我这样做之前,我只是想先检查一下是否没有别的办法?任何帮助表示感谢 .

2 回答

  • -1

    需要Ingress控制器来实现Ingress清单 . 没有它,安装Ingress清单不会做任何事情 . Afaik,部署Ingress是HTTP重定向的最佳方式 .

    您可以使入口将HTTP流量重定向到HTTPS . 看看这个tutorial for TLS with traefik,这个tutorial for TLS with nginx .

  • 2

    我已经成功安装了一个Nginx Ingress控制器来强制https通过https://mydigest.co/所以目前很高兴作为一个蛤蜊 .

    得到dns SRV记录然后解决....好吧现在有效但这是另一个故事!

相关问题