侧边栏壁纸
博主头像
背锅小王子博主等级

我从事运维工作有十年之久,主要从事云原生相关的工作,对k8s、devops、servicemesh、可观察性等较为熟悉!

  • 累计撰写 59 篇文章
  • 累计创建 64 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Traefik最佳实践(三)四层代理

背锅小王子
2022-08-05 / 0 评论 / 0 点赞 / 334 阅读 / 304 字
温馨提示:
本文最后更新于 2022-11-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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来做四层代理完成。

0

评论区