2017-12-27 24 views
1

KubernetesホワイトソースレンジブロックIP

whitelist-source-rangeアノテーションを追加すると、サービスから完全にロックアウトされるという点を除いて、すべてうまくいきます。

# Deny for staging.com/ 
geo $the_real_ip $deny_5b3266e9d666401cb7ac676a73d8d5ae { 
    default 1; 

    x.x.x.x 0; 
    y.y.y.y 0; 
} 

彼が私をロックしているように見えます代わりに、ホワイトリストのこのIPの:私は、コントローラポッドに接続し、nginxの設定ファイルをチェックし、これを見つけた

イングレス設定 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: staging-ingress namespace: staging annotations: kubernetes.io/ingress.class: nginx ingress.kubernetes.io/whitelist-source-range: "x.x.x.x, y.y.y.y" spec: rules: - host: staging.com http: paths: - path:/ backend: serviceName:staging-service servicePort: 80 。しかし、それはまた、他のすべてのアドレスをロックアウト...私はstaging.comホストから行くことによって403を得る。

+0

を達成するために

、この設定はx.x.x.xていないIPまたはy.y.y.y.からのすべての要求をロックしますそして、あなたは403の応答を得るIPからの要求を送信していますか? – fiunchinho

答えて

0

はい。しかし、私は自分で考え出した。サービスを有効にする必要がありますexternalTrafficPolicy: Local。つまり、内部クラスタIPの代わりに実際のクライアントIPを使用する必要があります。ただ、明確にするために、この実行に kubectl patch svc nginx-ingress-controller -p '{"spec":{"externalTrafficPolicy":"Local"}}'

関連する問題