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

Pop*_*ame 5 kubernetes traefik traefik-ingress

我正在尝试配置 Traefik IngressRoute 以指向 Headless 服务(该服务指向集群后面的数据库)。该安装程序可以很好地与“正常”服务(端点位于集群内)配合使用。我正在使用 traefik 2.3。

但是,当我尝试创建指向无头服务的 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
Run Code Online (Sandbox Code Playgroud)

这是我尝试创建的 IngressRoute,以及带有端点的 Headless 服务:

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
Run Code Online (Sandbox Code Playgroud)

该设置与“正常”服务完美配合。

我错过了什么?是否有可能使用 traefik 2.3 指向无头服务?在此先感谢您的帮助。

Pop*_*ame 4

解决 !

该错误来自我的服务和端点的错误配置。

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

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
Run Code Online (Sandbox Code Playgroud)