Tim,

Thank you for a quick response! 

Losing the original pod's IP is not a big concern for me, so this track 
will be OK. My hope is to be able to use GKE without any 
customizations/workarounds/hacks. Hence, the v1.7 changes are welcome! 

1. Can you confirm that my workaround will not break anything (as far as 
you know) ?
2. Can you point me to docs on "IP aliases support" that you mention below?
3. The problem I describe here is the pod-to-vpcsvc access. The other side 
of this coin is vpcsvc-to-k8ssvc. There, I used a Google Internal Load 
Balancer** whose IP address is in subnet1 and accessible from subnet2 (as 
expected). This is the complete use-case: "external" service is private and 
K8S service is exposed on a 10.x.x.x network. I am curious about the 
thoughts around this use-case in terms of abstraction/configuration options.

** Internal Load Balancer (ILB): I have a NodePort service (portA) whose 
node:portB are the backend. The ILB only works if the frontend port is 
portB i.e. same as backend. I suppose this because of the "forwarder, not 
proxy" architecture of ILB. My goal is to expose this service to VMs in 
subnet2 on portA. I am able to do that by running HAproxy in subnet1. Is 
service type=InternalLoadBalancer (or equivalent with annotation or 
whatever) on the GKE roadmap? Will the TCP+proxy mode be supported by the 
ILB? I bring this up here because my use-case as a whole needs this piece 
as well and I would like to understand if the GKE roadmap addresses the 
masquerade piece separately or this entire use-case is going to be 
supported.

Thank you!
-Manjiri

On Saturday, May 20, 2017 at 8:56:52 PM UTC-7, Tim Hockin wrote:
>
> The VPC peerings are dropping non-VM packets.  That's unfortunately 
> the state of things for now.  The solution, as you show here, is to 
> masquerade.  The downside is that you lose the original pod's IP in 
> the packet. 
>
> We've added support for IP aliases, which should be beta in OSS in 
> v1.7 (and probably alpha in GKE at first), which will remove this 
> restriction.  We're also working on a more configurable way to manage 
> the masquerade rules, so you can tweak it in small way, instead of the 
> single kubelet flag we have today. 
>
> On Sat, May 20, 2017 at 8:41 PM, Manjiri Gadagkar 
> <manjiri....@ruckuswireless.com <javascript:>> wrote: 
> > Hello! 
> > 
> > My goal is to set up a cluster in Google Container Engine in a private 
> > network (nw1:subnet1) that can access services in another private 
> network 
> > (nw2:subnet2). The latter (subnet2) is an existing deployment of 
> services 
> > running on Google Compute Engine instances (VMs). I have set up VPC 
> Peering 
> > between nw1 and nw2. 
> > 
> > Master version: 1.5.7 
> > nw1: 
> >         subnet1: 10.224.0.0/11 
> >         Container address range: 10.164.0.0/14 
> >         PodCIDR: 10.164.2.0/24 
> > nw2: 
> >         subnet2: 10.96.0.0/24    (existing) 
> >         subnet3: 192.168.0.0/24     (testing) 
> >         subnet4: 172.16.0.0/24      (testing) 
> > 
> > I found that subnet3 and subnet4 are accessible from the pods. My 
> problem is 
> > that I am not able to access subnet2 from the pods. 
> > 
> > I looked at the iptables on the GKE node, and found this rule: 
> > 
> >     -A POSTROUTING ! -d 10.0.0.0/8 -m comment --comment "kubenet: SNAT 
> for 
> > outbound traffic from cluster" -m addrtype ! --dst-type LOCAL -j 
> MASQUERADE 
> > 
> > I added a SNAT rule for subnet2 destination as follows. I don't know if 
> it 
> > breaks something else, but it appears to work around the issue. 
> > 
> >  -A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j 
> > KUBE-POSTROUTING 
> >  -A POSTROUTING -d 10.96.0.0/24 -m comment --comment "manjiri: SNAT for 
> > outbound traffic from cluster" -m addrtype ! --dst-type LOCAL -j 
> MASQUERADE 
> >  -A POSTROUTING ! -d 10.0.0.0/8 -m comment --comment "kubenet: SNAT for 
> > outbound traffic from cluster" -m addrtype ! --dst-type LOCAL -j 
> MASQUERADE 
> >  -A POSTROUTING -s 127.0.0.0/8 -o cbr0 -m comment --comment "SNAT for 
> > localhost access to hostports" -j MASQUERADE 
> > 
> > Is my use-case supported in GKE? Is there a configuration parameter that 
> I 
> > could tweak? Anything else I could try? 
> > 
> > Thanks in advance! 
> > -Manjiri 
> > 
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "Kubernetes user discussion and Q&A" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to kubernetes-use...@googlegroups.com <javascript:>. 
> > To post to this group, send email to kubernet...@googlegroups.com 
> <javascript:>. 
> > Visit this group at https://groups.google.com/group/kubernetes-users. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Kubernetes user discussion and Q&A" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to kubernetes-users+unsubscr...@googlegroups.com.
To post to this group, send email to kubernetes-users@googlegroups.com.
Visit this group at https://groups.google.com/group/kubernetes-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to