[英]How to use Traefik IngressRoute on a Headless Service
我正在尝试将 Traefik IngressRoute 配置为指向无头服务(服务指向集群后面的数据库)。 安装程序适用于“正常”服务(具有集群内的端点)。 我正在使用 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
这是我正在尝试创建的 IngressRoute,以及带有端点的 Headless 服务:
--- 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.