我一直收到这个错误:
Ingress“traefik-web-ui-ingress”无效:spec.rules [0] .http.backend.serviceName:无效值:“traefik-frontend-service.traefik.svc.cluster.local”:DNS-1035标签必须由小写字母数字字符或' - '组成,以字母字符开头,并以字母数字字符结尾(例如'my-name'或'abc-123',用于验证的正则表达式是'az?')
服务名称traefik-frontend-service.traefik.svc.cluster.local:
以字母数字字符开头
以字母数字字符结尾
仅包含字母数字或 -
这是为了避免交叉命名空间暴露,在此线程中解释了为什么对入口规范的这种限制是故意的。
这意味着,Ingress只能在同一名称空间中公开服务。
提供的值应该是服务名称,而不是FQDN。
如果你真的需要这样设计,你的其他选择是:
将Traefik公开为LB服务,然后创建数据服务以向traefik提供路由规则。
使用Contour Ingress(通过heptio)将路由委派给其他名称空间。
使用Contour会是这样的:
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
name: namespace-delegation-root
namespace: default
spec:
virtualhost:
fqdn: ns-root.bar.com
routes:
- match: /
services:
- name: s1
port: 80
/blog
to the IngressRoute object in the marketing namespace with the name blog
- match: /blog
delegate:
name: blog
namespace: marketing
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
name: blog
namespace: marketing
spec:
routes:
- match: /blog
services:
- name: s2
port: 80
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。