【发布时间】:2021-07-31 21:53:51
【问题描述】:
我们已经在 GKE 上配置了一个集群并安装了 nginx-ingress。使用我们的入口规则它可以工作,但我不能让它与 HTTP/2 一起工作。我们在 ConfigMap 上设置数据信息,但它总是回退到 http/1.1。这个确切的设置在 DigitalOcean 上运行良好。谁能提供一些指导?
谢谢
安装 Nginx-Ingress
kubectl create ns ingress-nginx
helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install nginx-ingress nginx-stable/nginx-ingress --namespace ingress-nginx
我的入口文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.global-static-ip-name: "mylocalip"
spec:
rules:
- host: test.mydomain.com
http:
paths:
- path: /hello
backend:
serviceName: hello-server
servicePort: 80
- backend:
serviceName: default-server
servicePort: 80
我的 ConfigMap 数据应用于 nginx-ingress-nginx-ingress configmap
data:
use-http2: "true"
编辑(2021 年 5 月 11 日):
我们将入口更改为使用证书,现在我们使用 HTTPS 连接。但是,所有连接都是使用 http/1.1 建立的
您好,感谢您的回复。但我已将 ingress 更改为使用 cert-manager 和 LetEncrypt,下面是更新后的 Ingress。
入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: mynamespace
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.global-static-ip-name: "myip"
spec:
tls:
- hosts:
- test.mydomain.com
secretName: my-cert
rules:
- host: test.mydomain.com
http:
paths:
- backend:
serviceName: myweb
servicePort: 80
编辑 2 (05/14/2021)
当前版本:1.19.9-gke.1400 使用 curl 和https://http2.pro/ 进行测试(均表示不可用)
同样的设置可以在 DigitalOcean 上使用 k8s。
这是我的安装和配置文件:
安装 Ingress-NGINX
kubectl create ns ingress-nginx
helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install nginx-ingress nginx-stable/nginx-ingress --namespace ingress-nginx --set controller.service.loadBalancerIP=x.x.x.x
入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: mynamespace
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- test.mydomain.com
secretName: my-cert
rules:
- host: test.mydomain.com
http:
paths:
- backend:
serviceName: myweb
servicePort: 80
配置图
apiVersion: v1
kind: ConfigMap
metadata:
namespace: ingress-nginx
name: nginx-ingress-nginx-ingress
data:
proxy-buffering: "false"
ssl-ciphers: EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED
ssl-protocols: TLSv1.2 TLSv1.3
ssl-redirect: "true"
use-forward-headers: "true"
use-http2: "true"
【问题讨论】:
标签: google-kubernetes-engine nginx-ingress