1、部署测试应用
部署测试应用redis
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
2、配置Tcp转发
要暴露TCP端口使用的是SNI【10】,而SNI又是依赖TLS的,所以我们需要配置证书才行,但是如果没有证书的话,我们可以使用通配符 * 进行配置
配置value.yml文件,为redis添加一个entryPoints,配置如下:
ports:
traefik:
port: 9000
expose: true
web:
port: 8000
hostPort: 80
expose: true
websecure:
port: 8443
hostPort: 443
expose: true
redis:
port: 6379
containerPort: 6379
hostPort: 6379
更新traefik
helm upgrade traefik . -n ingress
traefik使用IngressRouteTCP这个crd来处理tc请求,下面我们来创建一个tcp的路由转发
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: redis-tcp
namespace: default
spec:
entryPoints:
- redis
routes:
- match: HostSNI(`*`)
services:
- name: redis-headless
port: 6379
3、测试转发
测试redis端口:6379
telnet 192.168.96.51 6379
Trying 192.168.96.51...
Connected to 192.168.96.51.
Escape character is '^]'.
连接redis测试
redis-cli
127.0.0.1:6379> auth 你的redis密码
OK
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b"
127.0.0.1:6379>
至此通过traefik来做四层代理完成。
评论区