簡體   English   中英

如何使用Gcloud / kubernetes獲取客戶端外部IP

[英]How to get the clients external ip, im using Gcloud/kubernetes

我最近開始在gcloud上使用kubernetes,到目前為止到目前為止還算順利,但是我似乎無法使用wildfly(jsf)在我的應用程序上獲取客戶端/用戶的外部IP地址 ,因此不勝感激! 我使用以下命令公開我的Pod:

kubectl expose rc modcluster-replication-controller --name=modcluster --type="LoadBalancer"

  • 1個以Wildfly獨立模式運行的Pod
  • 1個Pod運行Mod集群
  • 1個Pod運行Postgres
  • 1個rc運行mod-cluster-replication控制器
  • 1公開rc mod-cluster-replication控制器端口80
  • 1個gcloud負載平衡器

基於票務怪獸Kubernetes 使用kubernetes,gcloud,modcluster, wildfly

我的建議(如果您的應用程序是端口80/443上的HTTP / HTTP)是利用Ingress控制器,該控制器基本上將服務作為HTTP / HTTPs負載平衡器公開,從而在數據包中注入X-Forwarded-For。

這將顯示源/客戶端的IP地址。 請按照此處的X-Forwarded-For字段上的教程詳細信息進行操作。

我剛剛在該教程中測試過的示例調用:LB IP:130.211.10.191

容器內的Tcpdump:

$ tcpdump -n -l -w - | strings

Output:
Host: 130.211.10.191
Cache-Control: max-age=0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.74.0) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/50.0.2661.103 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
If-None-Match: "574da256-264"
If-Modified-Since: Tue, 31 May 2016 14:40:22 GMT
X-Cloud-Trace-Context:
6b36a7d93d60dc6921417796255466d5/14093000126457324029
Via: 1.1 google
X-Forwarded-For: 81.47.XXX.XXX, 130.211.10.191    # the IP starting with
81. is my local IP
X-Forwarded-Proto: http
Connection: Keep-Alive
JxHTTP/1.1 304 Not Modified

k8s 1.7版(僅在1.7.2中進行了測試)使此操作變得輕而易舉。 只需在您的LoadBalancer服務中使用spec:externalTrafficPolicy:Local。 它將為端口80和443提供服務​​,沒有任何問題。 例如:

apiVersion: v1
kind: Service
metadata:
  name: myservice
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
    name: http
  - port: 443
    protocol: TCP
    targetPort: 443
    name: https
  selector:
    app: myapp
    role: myrole
  type: LoadBalancer
  loadBalancerIP: 104.196.208.195
  externalTrafficPolicy: Local 
kubectl describe svc servicename | grep 'LoadBalancer Ingress'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM