2016-06-28 69 views
0

我最近开始与gcloud上的kubernetes合作,迄今为止相当流畅,但我似乎无法在我的应用上获得客户端/用户外部IP地址使用wildfly(jsf)任何想法将不胜感激!如何获得客户的外部IP,即时通讯使用Gcloud/kubernetes

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

  • 1吊舱运行wildfly独立模式
  • 1吊舱运行MOD-簇
  • 1个吊舱运行postgres的
  • 1 RC运行MOD: 我使用下面的命令暴露我的荚集群复制控制器
  • 1公开rc模块集群复制控制器端口80
  • 1 gcloud负载均衡器

使用kubernetes,gcloud,modcluster,wildfly林基于关闭Ticket-monster Kubernetes

回答

4

我的建议(如果您的应用程序是HTTP/HTTPS端口上80/443)是 取Ingress控制器的优势在于它基本上将 服务作为一个HTTP/HTTPs负载均衡器来提供,该负载均衡器在数据包中注入X-Forwarded-For。

这将显示源/客户端的IP地址。请按照在X - 转发,对于现场的tutorial 详情可here

样品通话,我只是与教程测试: 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 
+0

牌九我一直在所有的地方,谷歌,计算器,gcloud文档,做了一些修改,以适应Apache和它的工作,非常感谢你,读到** *进入*但不能确定它是如何工作的,快速问题为什么在130范围内创建的IP ...? – PaulMB

+0

@PaulMB - 没有特别的原因。在我的情况下,它是自动分配给我的Google HTTP/S LB的IP地址。我很高兴我的解决方案为您解决。请将答案标记为“已接受”。祝你好运Kubernetes - 这是一个很棒的产品! –

0

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 
0
kubectl describe svc servicename | grep 'LoadBalancer Ingress' 
+0

请向代码添加说明 – user7294900