使用外部负载均衡器在Kubernetes上使用Traefik

时间:2018-11-11 23:53:09

标签: kubernetes

原谅我英语不好。

我正在尝试基于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

有什么想法吗??

0 个答案:

没有答案