如何在无头服务上使用Traefik IngressRoute



我正在尝试将Traefik IngressRoute配置为指向Headless服务(指向集群后面的数据库的服务(。该设置与";正常的";服务(端点在集群内(。我正在使用traefik 2.3。

但是,当我试图创建一个指向headless服务的ingressRoute时,我在traefik日志中出现了错误:

time="2020-11-27T10:41:53Z" level=error msg="cannot define a port for dev/-central-db-service" ingress=webapp-ingressroute providerName=kubernetescrd namespace=traefik
time="2020-11-27T10:41:54Z" level=error msg="cannot define a port for dev/central-db-service" providerName=kubernetescrd ingress=webapp-ingressroute namespace=traefik

这是我试图创建的入口路由,以及带有端点的无头服务:

---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: webapp-ingressroute
namespace: traefik
labels:
spec:
entryPoints:
- websecure
routes:
- match: Host(`couchdb.test.io`)
kind: Rule
services:
- name: central-db-service
kind: Service
port: 5984
namespace: dev
tls:
secretName: certificate
---
kind: Endpoints
apiVersion: v1
metadata:
name: central-db-service
namespace: dev
subsets:
- addresses:
- ip: 192.168.0.50
ports:
- port: 5984
name: central-db-service
---
kind: Service
apiVersion: v1
metadata:
name: central-db-service
namespace: dev
spec:
clusterIP: None
ports:
- port: 5984
targetPort: 5984

该设置与";正常的";服务

我错过了什么?traefik 2.3是否可以提供无头服务?提前感谢您的帮助。

已解决!

这个错误来自于我的服务和端点的错误配置。

我为端点端口设置的名称与服务端口的名称不匹配(事实上,我没有设置名称(。一旦端点中的端口和服务中的端口设置了相同的名称,一切都会正常工作。

kind: Endpoints
apiVersion: v1
metadata:
name: central-db-service
namespace: dev
subsets:
- addresses:
- ip: 192.168.0.50
ports:
- port: 5984
name: central-db-service
---
kind: Service
apiVersion: v1
metadata:
name: central-db-service
namespace: dev
spec:
clusterIP: None
ports:
- port: 5984
targetPort: 5984
name: central-db-service

最新更新