Kubernetes泛域名支持

场景

使用 xx.namespace.example.com可以解析到对应的IP,其中xx和namespace是可变。

ingerss

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
	name: kubeflow.example.com
	namespace: istio-system
spec:
  rules:
  - host: '*.{namspace}.example.com'
    http:
      paths:
      - backend:
          serviceName: istio-ingressgateway
          servicePort: http2

ingress 不支持多级域名的泛解析

请求 配置 结果
xx.namespace.example.com *.default.example.com 200
  *.*.example.com 创建不成功
xx.namespace.example.com *.example.com 404
xx.example.com *.example.com 200

coredns

支持非常灵活使用template插件

1
2
3
4
5
template IN A example.com {
  match .*\.example\.com
  answer " 60 IN A IP地址"
  fallthrough
}

xx.namespace.example.com 和 xx.example.com 都可以解析到对应IP