Have any Question?

***********

使用rancher ui为k3s集群配置traefik的客户端ip透传

k3s默认使用traefik作为流量入口,且默认 traefik节点直接暴露在公网,于是当traefik节点没有公网ip或者运行在其他反向代理、负载均衡器之后时,应用获取到的客户端ip都是traefik的ip,这时要 配置信任前边反向代理软件或负载均衡器传递的 客户端ip才能获取真正的客户端ip。

如图所示 traefik运行在nginx之后whoami应用获取到的ip是traefik节点的内网ip

下面 分步骤演示一下解决这个问题的操作流程。

1 登陆rancher ui导航到k3s集群管理页: 在 应用->已安装的应用 中找到traefik图表 在其后菜单中点击《编辑/升级》

注意:命名空间要选系统命名空间或者全部命名空间,不然看不到traefik应用,因为它默认安装在kube-system命名空间下 这属于系统命名空间

2 编辑traefik应用时记得勾选 在安装前自定义helm选项

3 编辑yaml中的 additionalArguments: []

additionalArguments:
  - '--entryPoints.web.proxyProtocol.trustedIPs=127.0.0.1/32,10.0.0.0/8,192.168.0.0/16'
  - '--entryPoints.web.forwardedHeaders.trustedIPs=127.0.0.1/32,10.0.0.0/8,192.168.0.0/16'

参数变化如图所示,注意:10.0.0.0/8和192.168.0.0/16分代表traefik自身网段和上游反向代理或者负载均衡器节点网段,二者缺一不可

下一步 更新

更新完成

4 验证:刷新应用即可获取到真实的客户端ip

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注