这是我的入口文件,我需要的是如何在入口文件中添加https重定向设置,我使用服务文件完成了它,并且它可以工作,但是在降低成本之后,我决定使用SINGLE入口文件来管理多个服务单个AWS CLASSIC负载均衡器。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
generation: 4
name: brain-xx
namespace: xx
spec:
rules:
- host: app.xx.com
http:
paths:
- backend:
serviceName: xx-frontend-service
servicePort: 443
path: /
status:
loadBalancer:
ingress:
- ip: xx.xx.xx.xx
答案 0 :(得分:0)
我设法在GKE上创建了http
到https
重定向。让我知道该解决方案是否适用于您在AWS上的案例:
复制步骤
请遵循此Ingress link ,以检查是否有任何必要的先决条件,然后再在您的AWS基础设施上安装NGINX Ingress控制器并进行安装。
下面的示例是仅使用HTTP流量的Ingress配置。 它将作为起点:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-http
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: xx.yy.zz
http:
paths:
- path: /
backend:
serviceName: hello-service
servicePort: hello-port
- path: /v2/
backend:
serviceName: goodbye-service
servicePort: goodbye-port
请更改此文件以反映适合您情况的配置。
要使其在没有浏览器安全警告的情况下起作用,您将需要有效的SSL证书和域名。
要创建此证书,您可以使用例如:Linode create Let's Encrypt SSL certificates。
让我们的加密将创建文件,这些文件将在以后使用。
默认情况下,如果未提供Nginx Ingress证书,则它将创建一个自签名证书。要提供给他一个,您需要将其作为秘密添加到您的Kubernetes集群中。
正如我之前所说,Let's Encrypt创建的文件(cert.pem privkey.pem
)将被添加到Kubernetes中以配置HTTPS。
以下命令将使用此文件为Ingress创建密钥:
$ kubectl create secret tls ssl-certificate --cert cert.pem --key privkey.pem
此Ingress配置支持HTTPS并将所有流量重定向到它:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-https
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
tls:
- secretName: ssl-certificate
rules:
- host: xx.yy.zz
http:
paths:
- path: /
backend:
serviceName: hello-service
servicePort: hello-port
- path: /v2/
backend:
serviceName: goodbye-service
servicePort: goodbye-port
请更改此文件以反映适合您情况的配置。
看看这个片段,它将启用HTTPS并将所有流量重定向到它:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
tls:
- secretName: ssl-certificate
应用此配置,然后检查它是否对您有用。
下面是curl输出的一部分,该结果表明连接到http://xx.yy.zz
可以重定向到https://xx.yy.zz
< HTTP/1.1 308 Permanent Redirect
< Server: openresty/1.15.8.2
< Date: Fri, 20 Dec 2019 15:06:57 GMT
< Content-Type: text/html
< Content-Length: 177
< Connection: keep-alive
< Location: https://xx.yy.zz/