1

アプリケーションにアクセスするクライアントの外部 IP アドレスを取得したいと考えています。AWS/Kops で kubernetes を使用しています。Ingress セットアップは、Voyager 構成の HAProxy です。LoadBalancer サービスを使用しています。

アノテーションx-forwarded-forを使用してヘッダーを追加するように、Voyager を介して HAProxy を構成しました。ingress.appscode.com/default-option: '{"forwardfor": "true"}'

問題は、ヘッダーをテストすると、必要に応じて外部 IP ではなく、kubernetes ノードの 1 つの内部 IP アドレスが送信されることです。

LoadBalancer voyager が内部で使用しているものはわかりません。関連するポッドはなく、イングレス コントローラー用に 1 つだけです。

kubectl describe svc voyager-my-app出力

Name:                     <name>
Namespace:                <namespace>
Labels:                   origin=voyager
                          origin-api-group=voyager.appscode.com
                          origin-name=<origin-name>
Annotations:              ingress.appscode.com/last-applied-annotation-keys:
                          ingress.appscode.com/origin-api-schema: voyager.appscode.com/v1beta1
                          ingress.appscode.com/origin-name: <origin-name>
Selector:                 origin-api-group=voyager.appscode.com,origin-name=<origin-name>,origin=voyager
Type:                     LoadBalancer
IP:                       100.68.184.233
LoadBalancer Ingress:     <aws_url>
Port:                     tcp-443  443/TCP
TargetPort:               443/TCP
NodePort:                 tcp-443  32639/TCP
Endpoints:                100.96.3.204:443
Port:                     tcp-80  80/TCP
TargetPort:               80/TCP
NodePort:                 tcp-80  30263/TCP
Endpoints:                100.96.3.204:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
4

1 に答える 1