我正在使用kubernetes ingress-nginx,这是我的入口规范。http://example.com像预期的那样工作良好。但当我转到https://example.com时,它仍然可以工作,但指向的是带有假入口控制器证书的默认后端。如何禁用此行为?我想在这个特定的入口上完全禁用对https的侦听,因为没有配置TLS。
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: http-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: my-deployment
servicePort: 80我已经尝试过这个nginx.ingress.kubernetes.io/ssl-redirect: "false"注解。但是,这没有任何效果。
发布于 2019-05-25 17:40:54
重定向与您的问题无关。
入口控制器正在监听端口80和443。当您仅使用80端口配置入口时,如果您到达443端口,您将被重定向到默认后端,这是预期行为。
一种解决方案是添加另一个nginx-controller,它只能监听80端口。然后,您可以使用kubernetes.io/ingress.class: myingress配置您的入口。在创建新的nginx控制器时,请更改守护程序的命令--ingress-class=myingress。然后,它将只处理用这个类注释的入口。
如果您使用helm部署它,只需覆盖controller.ingressClass值。
发布于 2019-05-25 17:02:33
我不知道一个入口-nginxtls值或入口annotation很容易禁用configmap。
您可以从入口控制器服务定义中删除端口443。
从spec.ports阵列中删除https条目
apiVersion: v1
kind: Service
metadata:
name: mingress-nginx-ingress-controller
spec:
ports:
- name: https
nodePort: NNNNN
port: 443
protocol: TCP
targetPort: httpsnginx仍将侦听TLS端口,但群集外部的客户端将无法连接到该端口。
https://stackoverflow.com/questions/56302606
复制相似问题