Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Traefik和DigitalOcean获得Kubernetes吊舱的真正IP_Kubernetes_Digital Ocean_Traefik_Traefik Ingress_Real Ip - Fatal编程技术网

使用Traefik和DigitalOcean获得Kubernetes吊舱的真正IP

使用Traefik和DigitalOcean获得Kubernetes吊舱的真正IP,kubernetes,digital-ocean,traefik,traefik-ingress,real-ip,Kubernetes,Digital Ocean,Traefik,Traefik Ingress,Real Ip,我正在尝试使用traefik获取Kubernetes吊舱的真实源IP地址。我使用的是启用了代理协议的digital ocean负载平衡器。我还将我的K8s服务yaml配置为将外部流量策略设置为本地 从K8s中的我的configmap中提取Traefik入口。我已经编辑了我的实际IP,但我使用了负载均衡器IP和Kubernetes工作节点专用IP [entryPoints] [entryPoints.http] address = ":80" co

我正在尝试使用traefik获取Kubernetes吊舱的真实源IP地址。我使用的是启用了代理协议的digital ocean负载平衡器。我还将我的K8s服务yaml配置为将外部流量策略设置为本地

从K8s中的我的configmap中提取Traefik入口。我已经编辑了我的实际IP,但我使用了负载均衡器IP和Kubernetes工作节点专用IP

  [entryPoints]
      [entryPoints.http]
        address = ":80"

        compress = true
        [entryPoints.http.redirect]
        entryPoint = "https"
      [entryPoints.https]

        address = ":443"
        compress = true
        [entryPoints.https.tls]
          [[entryPoints.https.tls.certificates]]
          CertFile = "/ssl/client_co.crt"
          KeyFile = "/ssl/tls.key"
        [entryPoints.https.proxyProtocol]
          trustedIPs = ["Load Balancer IP, Kubernetes Worker Node IPs"]


      [entryPoints.https.redirect]
        regex = "^https://(?:www\\.)(.*)"
        replacement = "https://$1"
        permanent = true
这是部署文件服务yaml的一部分

  kind: Service
    apiVersion: v1
    metadata:
      name: traefik-ingress-service
      annotations:
        service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
      namespace: kube-system
    spec:
      selector:
        k8s-app: traefik-ingress-lb
      ports:
        - protocol: TCP
          port: 80
          name: web
        - protocol: TCP
          port: 443
          name: https
        # - protocol: TCP
        #   port: 8080
          name: admin
      type: LoadBalancer
      externalTrafficPolicy: Local

非常感谢您的帮助。

您是如何检查IP的?现在我只是检查traefik日志,他们有私有IP地址。您可以检查标题X-real-IP和X-Forwarded-Force,因为我在Chrome上看不到标题。我不认为负载平衡会将这些头传递给POD,这就是我使用代理的原因。您在do loadbalancer上执行ssl直通或ssl终止操作可能是错误的?你是从chrome上点击http还是https的?