使用 ingress 暴露强制执行 https 的应用程序

使用 ingress 暴露强制执行 https 的应用程序

我一直在设置一个 kubernetes 集群作为 PoC,但目前很难找到解决问题的方法。我需要部署的专有软件只公开一个端口,即 https。我测试了该服务,能够毫无问题地使用该应用程序,但使用 ingress 公开它会返回无效响应 (ERR_INVALID_RESPONSE)。这是我的 ingress 配置(使用官方 nginx-ingress helm 图表部署 ingress 并适用于其他服务):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: sapcc
  namespace: ingress
annotations:
  kubernetes.io/ingress.class: nginx
  nginx.ingress.kubernetes.io/ssl-redirect: "false"
  nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - http:
    paths:
    - backend:
        serviceName: cc1
        servicePort: 8443
      path: /cc1(/|$)(.*)

如何使用入口使该应用程序可访问?

感谢您的帮助!

答案1

入口控制器支持在spec.rules.http.paths.path字段中使用不区分大小写的正则表达式。可以通过将nginx.ingress.kubernetes.io/use-regex注释设置为 true(默认为 false)来启用此功能。在注释字段中添加以下行:

nginx.ingress.kubernetes.io/use-regex: "true"

请提供您的部署和服务文件。部署、服务和入口文件中的命名空间字段必须相同。

您是否已在 中指定您的域名spec: rules: -host

请参考这个简单的教程以及文档

相关内容