我最近开始在gcloud上与kubernetes合作,到目前为止还相当顺利,但我似乎无法使用通配符(Jsf)在我的应用程序上获得客户端/用户外部ip地址(Jsf)任何想法都会受到欢迎!我使用以下命令公开我的吊舱:
kubectl expose rc modcluster-replication-controller --name=modcluster --type="LoadBalancer"
Im使用基于票怪库伯内特斯的kubernetes、gcloud、off集群、野蝇
发布于 2016-06-28 17:06:55
我的建议(如果您的应用程序是端口80/443上的HTTP/HTTPs ),是利用in控制器,它基本上将服务公开为HTTP/HTTPs负载均衡器,注入包中的X转发-For。
这将显示源/客户端的IP地址。请按照X转发-For字段上的教程详细信息提供这里。
我刚刚用教程测试的样例调用: LB IP: 130.211.10.191
容器内的the转储:
$ 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发布于 2017-08-02 12:07:32
k8s版本1.7 (刚刚在1.7.2中进行了测试)使得这很容易。只需在您的LoadBalancer服务中使用spec:外部性流量策略:本地。它将服务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 发布于 2017-09-18 05:33:59
kubectl describe svc servicename | grep 'LoadBalancer Ingress'https://stackoverflow.com/questions/38077169
复制相似问题