Hi,
On my K8S cluster, I'm trying to access an Active FTP service with Traefik v2 as Ingress Controller.
My Ingress rules:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: test-tcp
spec:
entryPoints:
- ftp
routes:
- match: HostSNI(`*`)
services:
- name: ftp-server
port: 21tcp02
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: test-tcp-act
spec:
entryPoints:
- ftp-active
routes:
- match: HostSNI(`*`)
services:
- name: ftp-server
port: 20tcp02
My Service :
apiVersion: v1
kind: Service
metadata:
name: ftp-server
spec:
clusterIP: 10.43.207.17
ports:
- name: 21tcp2
port: 21
protocol: TCP
targetPort: 21
- name: 20tcp2
port: 20
protocol: TCP
targetPort: 20
selector:
workload.user.cattle.io/workloadselector: deployment-ftp-server
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
The dashboard tells me that everything is OK.
With Curl if I specify the FTP protocol I have a timeout:
XXX:~$ curl -vvv ftp://XXX.fr:21
* Trying XXX:21...
* TCP_NODELAY set
* Connected to XXX (XXX) port 21 (#0)
* server response timeout
* Closing connection 0
curl: (28) server response timeout
On the other hand if I do not specify the protocol I do have an answer from the right vsftpd
container....
curl XXX.fr:21
220 (vsFTPd 3.0.2)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
What have I forgotten or done wrong?
Thanks,