Linkerd is capable of proxying all TCP traffic, including WebSockets and HTTP tunneling, and reporting top-line metrics (success rates, latencies, etc) for all HTTP, HTTP/2, and gRPC traffic.
For protocols where the server sends data before the client sends data over connections that aren’t protected by TLS, Linkerd cannot automatically recognize the protocol used on the connection.
This applies to the following list:
- 25 - SMTP
- 3306 - MySQL
- 8086 - InfluxDB
If you are using Linkerd to proxy plaintext MySQL or SMTP requests on their default ports (3306 and 25, respectively), then Linkerd is able to successfully identify these protocols based on the port. If you’re using non-default ports, or if you’re using a different server-speaks-first protocol, then you’ll need to manually configure Linkerd to recognize these protocols.
If you’re working with a protocol that can’t be automatically recognized by
Linkerd, use the
--skip-outbound-ports flags when
For example, if your application makes requests to a MySQL database running on port 4406, use the command:
linkerd inject deployment.yml --skip-outbound-ports=4406 \ | kubectl apply -f -
Likewise if your application runs an SMTP server that accepts incoming requests on port 35, use the command:
linkerd inject deployment.yml --skip-inbound-ports=35 \ | kubectl apply -f -