On Mon, Sep 18, 2017 at 10:28 AM, 'Tim Hockin' via Kubernetes user
discussion and Q&A <kubernetes-users@googlegroups.com> wrote:

> On Fri, Sep 15, 2017 at 4:13 PM, Mark Petrovic <mspetro...@gmail.com>
> wrote:
> > Hello.
> >
> > I would have made this shorter if I could.  Sorry.  My context is
> > Kubernetes, but my immediate questions are around clusters I configure on
> > Google Compute Engine (GCE).  Someone out there is bound to be in my
> > situation, so I feel
> > comfortable coming here, having been here a few times over the years.
> >
> > I am in pre-production research mode for running Kubernetes clusters
> > on regular GCE  VMs.  I know about Google Container Engine, but I'm not
> > ready to take that step.
> >
> > My work history: I have a couple years of working with Kubernetes
> > in various ways, but I'm still far from an expert.
> >
> > The very recent past:
> >
> > I've successfully setup a k8s cluster on GCE where the control plane
> > VMs (master, scheduler, controller, kubelet, kube-proxy) resided
> > on a GCE-Custom VPC network 10.0.0.0/24  (I'm avoiding the regional
> > default networks because I'm in learning mode and I want and learn
> > from that control).  In this k8s cluster, I created a second VPC
> > "podVPC" 172.16.0.0/16 from which pod IPs are allocated.  On each
> > node's kubelet, I configure a /24 from the podVPC for pods.  I know
> > the controller-manager *can* be involved in pod CIDR management,
> > but I have chosen that it not be.  I tell the kubelet what pod cidr,
> > via the kubelet param --pod_cidr, it can use, not the controller.
> > I followed what I call the "cbr0" model in crafting the cluster
> > config, found here:
> > https://kubernetes.io/docs/getting-started-guides/scratch/.  That
> > guide is dated, but I pieced it together.
> >
> > In this model, to make pod IPs routable within the cluster you have
> > to create GCE VPC Routes that route pod IPs through their respective
> > nodes.  Did that, and it works fine.   You also need GCE firewall rules
> so
> > the control plane members on net-10 can
> > talk to each other; did that, works fine.
> >
> > This cluster works as intended.
> >
> > Now, the problem with this network approach is that if you want to route
> > pod IPs across a VPN to your corp network via, say, BGP + Cloud
> > Router, this design won't work because GCE just won't do that routing
> > yet.
>
> I am not clear what doesn't work for you.  As far as I know GCP routes
> work with *almost* everything else GCP offers (Peering being an
> exception, for now).  I am pretty convinced that Pods + VPN works.
>

I could not find a way to articulate this in the GCP web UI.  To route the
control plane VM VPC and the Pod VPC across VPN, I felt like I was being
forced into creating *two* VPNs: one for the control plane and one for the
pods, since a VPN on the GCP side can only source one VPC.



>
> > So, enter GCE IP Aliases: https://cloud.google.com/
> compute/docs/alias-ip/
> >
> > The present:
> >
> > I need those pod IPs routed to my corp network, so I need to evolve my
> > design.
> >
> > Keep the cluster configuration the same as the cluster above.
> > Meaning, no changes to the kubelet or controller manager.
> >
> > However, the GCE VM configs *do* change.  Now you create VMs with
> > GCE-secondary subnets, aka IP Aliases.  Out of these per-VM secondary
> > ranges, you allocate pod IPs.  This means you do not create a second
> > podVPC as above and manually route pod CIDRs to their respective
> > nodes.  When you define a secondary subnet on a network, GCE will
> > setup those routes for you, and announce those routes over VPN to
> > your corp network.
> >
> > My first problem:  if I bring up a couple of nodes with IP Alias
> > ranges defined on them, without any pods running at all, I can
> > already ping addresses where the pods will be allocated.  This makes
> > me think two things:  1) I've read the IP Alias docs carefully but
> > I've already screwed up my VM config, 2) my node VM config is correct
> > and nodes are supposed to masquerade as secondary workloads.  And
> > if 2 obtains, when a real pod does come up, how do I tell (via some
> > k8s control plane flag??) the GCE fabric to stop masquerading as
> > the pod?
>
> The default GCP VM images assign IP alias ranges to the local vNIC.
> You need to turn that off in one of the google daemons, or you need to
> run our COS image which does that.
>

This is new magic to me, but based on your comment I was able to suppress
what I call the masquerading by setting ip_forwarding_daemon==false in
/etc/default/instance_configs.cfg
on the guest (the GCP CentOS7 image).  Such a host no longer responds to
pings to its IP Aliases.  Just curious:  if this forwarding were left
enabled, and a real workload was listening on an alias IP, would the
workload respond to a prospective TCP connection, or would the host
respond?  If the workload responds, how does the host know to not
masquerade, as it seems not to know when I ping a 'workload'?




>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Kubernetes user discussion and Q&A" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/kubernetes-users/mW6LGb9lIZM/unsubscribe.
> To unsubscribe from this group and all its topics, 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.
>



-- 
Mark

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