原谅我英语不好。
我正在尝试基于traefik在kubernetes中部署一个入口控制器,但我遇到了一个问题。我正在使用traefik v1.7.4 docker镜像。
我正在尝试在我的应用容器中获取客户端IP。 kubernetes部署在“本地”服务器上,因此我不能使用标准的k8s负载平衡器。 我在pfsense服务器中创建了负载平衡(tcp)。在池中,我刚刚声明了2个节点。
在应用容器中,x-forward-for仅包含内部ip:
{ host: 'example1.domain.net',
'user-agent': 'curl/7.43.0',
accept: '*/*',
'x-forwarded-for': '10.233.73.64',
'x-forwarded-host': 'example1.domain.net',
'x-forwarded-port': '80',
'x-forwarded-proto': 'http',
'x-forwarded-server': 'traefik-ingress-controller-6c8fdb6f9b-g47bb',
'x-real-ip': '10.233.73.64',
'accept-encoding': 'gzip' }
现在有几个小时,我搜索和测试各种配置都没有成功。我希望有人能帮助我。
我的conf: 调试= true defaultEntryPoints = [“ http”,“ https”]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
CertFile = "/ssl/tls.crt"
KeyFile = "/ssl/tls.key"
[web]
# Port for the status page
address = ":8080"
以及我的应用程序上的规则。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-world-ing
namespace: default
annotations:
kubernetes.io/ingress.class: traefik
traefik.frontend.entryPoints: http
traefik.frontend.passHostHeader: true
traefik.ingress.kubernetes.io/preserve-host: "true"
spec:
rules:
- host: exemple1.domain.net
http:
paths:
- path: /
backend:
serviceName: hello-world
servicePort: 80
有什么想法吗??