Kubernetes - 一个 Ingress 中的多个配置

2024-06-18

我在同一个 Kubernetes 集群中运行不同的应用程序。

我希望多个域能够访问我的 Kubernetes 集群,并根据域进行重定向。 对于每个域,我想要不同的注释/配置。

如果没有注释,我的入口部署如下:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: frontdoor
  namespace: myapps
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  type: LoadBalancer
  tls:
    - hosts:
        - foo.bar.dev
        - bar.foo.dev
      secretName: tls-secret
  rules:
    - host: foo.bar.dev
      http:
        paths:
          - backend:
              serviceName: foobar
              servicePort: 9000
            path: /(.*)
    - host: bar.foo.dev
      http:
        paths:
          - backend:
              serviceName: varfoo
              servicePort: 80
            path: /(.*)

但它们需要有多个配置,例如需要有以下注释

    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "PHPSESSID"
    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"

另一个会有这个

    nginx.ingress.kubernetes.io/backend-protocol: "FCGI"
    nginx.ingress.kubernetes.io/fastcgi-index: "index.php"
    nginx.ingress.kubernetes.io/fastcgi-params-configmap: "example-cm"

这些配置不兼容,并且我找不到通过主机指定配置的方法。

我也明白不可能有 2 个 Ingress 服务外部 HTTP 请求。

那么我不理解/做错了什么?


我也明白不可能有 2 个 Ingress 服务外部 HTTP 请求

我不确定你在哪里找到这个,但你完全可以做到这一点。

您应该能够创建两个单独的入口对象,如下所示:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: frontdoor-bar
  namespace: myapps
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod

    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "PHPSESSID"
    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"

spec:
  type: LoadBalancer
  tls:
    - hosts:
        - bar.foo.dev
      secretName: tls-secret-bar
  rules:
    - host: bar.foo.dev
      http:
        paths:
          - backend:
              serviceName: barfoo
              servicePort: 80
            path: /(.*)

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: frontdoor-foo
  namespace: myapps
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod

    nginx.ingress.kubernetes.io/backend-protocol: "FCGI"
    nginx.ingress.kubernetes.io/fastcgi-index: "index.php"
    nginx.ingress.kubernetes.io/fastcgi-params-configmap: "example-cm"

spec:
  type: LoadBalancer
  tls:
    - hosts:
        - foo.bar.dev
      secretName: tls-secret-foo
  rules:
    - host: foo.bar.dev
      http:
        paths:
          - backend:
              serviceName: foobar
              servicePort: 9000
            path: /(.*)

这是一个完全有效的入口配置,并且很可能是唯一可以解决您的问题的有效配置。

每个入口对象配置一个域。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes - 一个 Ingress 中的多个配置 的相关文章

随机推荐

  • 如何在XAMPP服务器中实现类似路由器登录的用户认证?

    我正在尝试在我的 XAMPP 服务器中设置用户身份验证 类似于路由器在调用特定路由时提示输入用户名和密码的方式 我想了解底层协议以及浏览器如何识别服务器需要身份验证 谁能指导我完成在 XAMPP 中创建此身份验证协议的过程 我希望能够解释所
  • Angular JS $location.path(...) 不触发路由控制器

    所以我尝试使用更新表单提交上的路径 location path search 但它没有触发注册的路线 search 我也尝试过使用尾部斜杠 没办法 我也试过了 scope apply但我刚刚得到 apply already in progr
  • ColdFusion 的最佳 IDE/编辑器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JavaFX 脚本和 Java

    简单的问题 我可以在桌面应用程序中混合 Java 和 JavaFX Script 代码吗 如果可能的话 您能给我提供一些示例链接吗 或者我可以将定制的 javafx CustomNode s 打包在 jar 中 并在我的项目中与标准 SWI
  • rvest如何通过id选择特定的css节点

    我正在尝试使用 rvest 包从网页中抓取数据 简单来说 html 代码如下所示 div class style div
  • 谷歌地图在网络应用程序中离线

    如何下载谷歌地图中的所有图像以在网络应用程序中永久使用离线访问 我可以使用以下命令执行在线操作 src maps googleapis com maps api js sensor false language en 但我需要通过在线下载所
  • 用户 ASP.NET 运行于

    我有点困惑 ASP NET 如何在什么用户下运行 在 iis 7 5 和 6 0 上 一些我不清楚的用户帐户是 网络服务 IUSR AppPool 对不同用户的任何澄清以及安全考虑等都将不胜感激 总之 IIS 5 1 Windows XP
  • 如何让Web Workers在执行计算的同时接收新数据?

    我想使用 Web Workers 对数组进行排序 但随着时间的推移 该数组可能会收到新值 而工作线程仍在执行排序功能 所以我的问题是 在收到新项目后 如何 停止 工作人员的排序计算 以便它可以对该项目的数组执行排序 同时仍然保持已经进行的排
  • 用户“”登录失败,无法打开登录请求的数据库“Database1.mdf”。登录失败。用户“rBcollo-PC\rBcollo”登录失败

    所以 我几乎解决了所有问题 但现在我要处理另一个问题 我使用了这个连接字符串 SqlConnection con new SqlConnection Data Source SQLEXPRESS Database Database1 mdf
  • 最好的 php DOM 2 数组函数是什么?

    我想解析xml文件 到目前为止 我发现最好的方法是使用 DOMDocument 类 示例 xml 字符串
  • 语法错误:意外的静态标记

    我目前正在尝试评估与 React 配合使用的不同测试框架 结果发现 Jest 就在我的列表中 但是 我尝试使用此处概述的静态属性 https github com jeffmo es class fields and static prop
  • Android模拟器收不到推送通知

    我在谷歌云上使用推送通知 但是由于某种原因我无法在模拟器上接收推送通知 然而 当我在真实设备上测试时 同一个应用程序确实会收到通知 有其他人遇到过这个问题或找到解决方案吗 模拟设备具有网络访问权限 并且与真实设备具有相同的 Android
  • 我可以使用 CSS 或脚本设置禁用控件的样式吗?

    我有一个 HTMLdiv页面上的元素在以下情况下更新select页面上的元素发生变化 有时 input需要根据选择禁用标签 文本框 问题是 项目涉众喜欢该功能 他们只是认为在 禁用 状态下 文本框内容太浅 因此不可读 我可以将 CSS 应用
  • R:如何应用输出多列数据帧的函数(使用 dplyr)?

    我想查找数据框中某一特定列与所有其他列之间的相关性 p 值和 95 CI broom 包提供了一个示例 说明如何使用带有 dplyr 和管道的 cor test 在两列之间执行此操作 对于 mtcars 和 mpg 列 我们可以与另一列进行
  • PHP 电子邮件表单每次刷新页面时都会发送电子邮件

    我的 php 电子邮件每次刷新页面时都会发送电子邮件 例如 用户正在填写表单并使用发送按钮发送 这一切都很好 但如果他们刷新页面 它会再次发送包含所有相同表单信息的电子邮件 我相信这是问题代码 但不知道它是什么 require once c
  • 如何在 javascript 中实现映射或排序集

    Javascript 有使用数字索引的数组 john Bob Joe 以及可以像关联数组或 映射 一样使用的对象 允许对象值使用字符串键 john 28 bob 34 joe 4 在 PHP 中 两者都很容易A 按值排序 同时保留密钥 和B
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • Firebase Storage - 如何授权文件下载?

    使用 Firebase Storage 时 您可以设置安全规则来授权获取文件的 url 例如使用getDownloadURL 但是 一旦用户拥有该 URL 什么才能阻止黑客众包该 URL 我知道在Google Cloud Storage中
  • Anchor Cycler / 下拉菜单定期导入学校班级数据

    SO 我最近一直在研究一些 html javascript css 为我的学生创建一个在线表格来查看详细信息 分数和各种信息 但我遇到了困难 不确定如何做我正在尝试的事情去做 我将所有这些内容发布在一个线程中的原因是因为我认为其中几个可能会
  • Kubernetes - 一个 Ingress 中的多个配置

    我在同一个 Kubernetes 集群中运行不同的应用程序 我希望多个域能够访问我的 Kubernetes 集群 并根据域进行重定向 对于每个域 我想要不同的注释 配置 如果没有注释 我的入口部署如下 apiVersion networki