我有一个入口控制器的答案正在回答*.mycompany.com
。每当我在集群中定义Ingress
资源时,是否可以不指定整个some-service.mycompany.com
而是仅指定some-service
部分。
因此,如果以后再更改域名(例如,在我的测试环境中),则无需指定some-service.test.mycompany.com
,但一切都会神奇地进行而无需更改。
答案 0 :(得分:0)
对于大多数Ingress控制器,如果您未指定主机名,则该Ingress将是所有其他不匹配项的默认值。唯一的缺点是您只能使用其中之一(每个控制器,具体取决于您的布局)。
答案 1 :(得分:0)
您想要实现的配置仅在nginx
中可用,但是由于“ host:” 的限制,无法在nginx-ingress
中应用它。
"ingress-redirect" is invalid: spec.rules[0].host: Invalid value: "~^subdomain\\..+\\..+$;": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.',
。
它必须以字母数字字符开头和结尾(例如example.com
,用于验证的正则表达式为[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
但是nginx语法允许使用类似如下的语法:< server_name mail.*; >
。
如果将所有配置都设置为http_snippet
,则可以使用,但是这是很多手动工作(要避免)。
我认为更好的解决方案是使用HELM。将入口Yaml放在helm chart
上,并在图表中使用values.my_domain
准备Ingress对象。然后,您只需要运行
helm install ingress-chart-name --set values.my_domain=example.com