On Sun, May 21, 2017 at 9:28 AM, Manjiri Gadagkar
<manjiri.gadag...@ruckuswireless.com> wrote:
> 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!

You and me both.

> 1. Can you confirm that my workaround will not break anything (as far as you
> know) ?

Should be fine.

> 2. Can you point me to docs on "IP aliases support" that you mention below?

https://github.com/kubernetes/kubernetes/pull/42147

It's gone beta now.

> 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.

ILB should be in 1.7 also.

> ** 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> 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.
>> > To post to this group, send email to kubernet...@googlegroups.com.
>> > 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.

-- 
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