On Tuesday, May 9, 2017 at 10:44:54 AM UTC-5, Tim Hockin wrote:
>
> If I read correctly, they want quota to apply to a subset of pods in a 
> Namespace (by selector) not the whole namespace (so multiple teams can 
> share a namespace), or else they need to pollute names with 
> env-specific decorations. 
>
>  
Quota part sounds similar to 
DHQ- 
https://docs.google.com/document/d/1UEw4NASc3bIFV9q9E628ORlOiATA6HxTcBjkPKyND0I/edit?usp=sharing


 

> On Tue, May 9, 2017 at 12:44 AM, 'David Oppenheimer' via Kubernetes 
> user discussion and Q&A <kubernet...@googlegroups.com <javascript:>> 
> wrote: 
> >> we'd need to make functionality like access control, quotas and other 
> >> things work based on labels and selectors within the namespace 
> > 
> > So you want access control and quotas to be per service per env, not 
> just 
> > per env? 
> > 
> > 
> > On Mon, May 8, 2017 at 10:20 AM, 'John Huffaker' via Kubernetes user 
> > discussion and Q&A <kubernet...@googlegroups.com <javascript:>> wrote: 
> >> 
> >> So that's our current setup (see sam's message): We have namespaces 
> >> following the convention "serviceName-envName".  This gives us quotas 
> and 
> >> ABAC, but we lose "semantic naming", as in our conf generation needs to 
> pass 
> >> dev, staging or prod everywhere and services need to hit 
> >> "https://serviceName-envName/";. 
> >> 
> >> In my mind there are two ways to make this clean: 
> >> 1. Hierarchical namespaces like Tim suggested.  Where top level 
> namespace 
> >> is env and sub-namespace is service. 
> >> 2. Or the env namespaces like you suggest.  Where the namespace is the 
> >> env.  Service discovery happens in the clean way you you describe, but 
> we'd 
> >> need to make functionality like access control, quotas and other things 
> work 
> >> based on labels and selectors within the namespace.  We'd probably also 
> need 
> >> to be more careful about linking configMaps to their deployments via 
> >> references instead of the "just kill the namespace" approach we take 
> today. 
> >> 
> >> #2 feels both practical and right to me at this point, but it'd 
> obviously 
> >> require some work. 
> >> 
> >> 
> >> 
> >> On Sat, May 6, 2017 at 10:34 PM, 'David Oppenheimer' via Kubernetes 
> user 
> >> discussion and Q&A <kubernet...@googlegroups.com <javascript:>> wrote: 
> >>> 
> >>> On Sat, May 6, 2017 at 7:45 PM, 'John Huffaker' via Kubernetes user 
> >>> discussion and Q&A <kubernet...@googlegroups.com <javascript:>> 
> wrote: 
> >>>> 
> >>>> So our "dev" env would be composed of N-different services foo, bar 
> and 
> >>>> baz for example. 3 different teams maintain the 3 different services 
> and 
> >>>> their related deployments.  We would like to limit operations like 
> apply, 
> >>>> delete, exec and logs to only people on those teams to their 
> respective 
> >>>> services and deployments.  the only way we found to get ABAC working 
> in the 
> >>>> way we wanted in 1.2 was to put each service/deployment in their own 
> >>>> namespace (+ "-env").  Additionally for each service's deployment 
> we'd like 
> >>>> to set a quota on how many CPUs/ram they can reserve.  As of right 
> now it 
> >>>> looks like that is per-namespace as well. 
> >>> 
> >>> 
> >>> Is there some reason you don't want the three services to be in three 
> >>> different namespaces? If you put them in three different namespaces, 
> you can 
> >>> do everything you described with RBAC and quota. 
> >>> 
> >>>> 
> >>>> 
> >>>> I've been worried about this conflict between service discovery and 
> >>>> abac/quota's interpretation of how namespaces should be used for a 
> while. 
> >>>> 
> >>>> On May 6, 2017 7:31 PM, "'David Oppenheimer' via Kubernetes user 
> >>>> discussion and Q&A" <kubernet...@googlegroups.com <javascript:>> 
> wrote: 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> On Sat, May 6, 2017 at 7:18 PM, 'John Huffaker' via Kubernetes user 
> >>>>> discussion and Q&A <kubernet...@googlegroups.com <javascript:>> 
> wrote: 
> >>>>>> 
> >>>>>> At this point it's the lack of quotas and abac associated with 
> >>>>>> selectors instead of namespaces. 
> >>>>> 
> >>>>> 
> >>>>> Can you say more about what you mean? What are scenarios where you'd 
> >>>>> like to restrict use of selectors? (and on what objects?) 
> >>>>> 
> >>>>>> 
> >>>>>>   I haven't looked closely enough at rbac to see if it gives us 
> what 
> >>>>>> we need within a namespace-per-env setup. 
> >>>>>> 
> >>>>>> The other side benefit that we can tool around is that namespace 
> make 
> >>>>>> a good "packaging" mechanism for deployments and their related 
> >>>>>> configMaps/secrets.  i.e. Want to delete a deployment just delete 
> it's 
> >>>>>> namespace. 
> >>>>>> 
> >>>>>> On May 6, 2017 6:53 PM, "'David Oppenheimer' via Kubernetes user 
> >>>>>> discussion and Q&A" <kubernet...@googlegroups.com <javascript:>> 
> wrote: 
> >>>>>> 
> >>>>>> Re-reading this thread, I'm wondering why the existing service name 
> >>>>>> resolution procedure that Nikhil mentioned doesn't solve Sam's 
> problem 
> >>>>>> (without the need for hierarchical namespaces). Use one namespace 
> per 
> >>>>>> environment, and use the unqualified service name for lookup to 
> find the 
> >>>>>> desired service in the same environment. 
> >>>>>> 
> >>>>>> 
> >>>>>> 
> >>>>>> 
> >>>>>> On Tue, Apr 18, 2017 at 4:14 PM, 'Sam Ghods' via Kubernetes user 
> >>>>>> discussion and Q&A <kubernet...@googlegroups.com <javascript:>> 
> wrote: 
> >>>>>>> 
> >>>>>>> Hello, 
> >>>>>>> 
> >>>>>>> We're struggling internally at Box with a question that we were 
> >>>>>>> hoping the community could help shed some light on. 
> >>>>>>> 
> >>>>>>> At Box we have three main environments: development, staging, and 
> >>>>>>> production. The definition of 'environment' here is primarily a 
> logical 
> >>>>>>> service discovery domain - what instances of other services should 
> access me 
> >>>>>>> and what instances of other services should I access? (Some 
> configuration 
> >>>>>>> can vary as well.) The development environment is a collection of 
> instances 
> >>>>>>> where changes are pushed first and the most frequently changing 
> environment. 
> >>>>>>> Staging is where changes go right before they're released and 
> where any 
> >>>>>>> manual testing is done. Production is the set of instances serving 
> customer 
> >>>>>>> traffic. 
> >>>>>>> 
> >>>>>>> Currently, we have four bare-metal datacenters, one is for 
> >>>>>>> non-production workloads (let's call it NP), the three other are 
> for 
> >>>>>>> production workloads (let's call them A, B, C). Each one has a 
> single large 
> >>>>>>> Kubernetes cluster named after the datacenter it's in. Initially, 
> we 
> >>>>>>> considered equating namespaces to environments, and having the dev 
> and 
> >>>>>>> staging namespaces in the NP cluster and the production namespace 
> in the A, 
> >>>>>>> B and C clusters. But we could not get good isolation between 
> different 
> >>>>>>> teams and microservices for authentication, quota management, etc. 
> >>>>>>> 
> >>>>>>> So instead, for a service 'foo,' each cluster uses namespaces like 
> >>>>>>> 'foo-dev', 'foo-staging', and 'foo-production', with the first two 
> >>>>>>> namespaces only existing in the NP cluster, but the production 
> namespace 
> >>>>>>> only existing in clusters A, B and C. The foo team only has access 
> to the 
> >>>>>>> foo namespaces (through ABAC, soon RBAC) and the foo namespaces 
> can have 
> >>>>>>> quotas put on them to ensure they do not overrun a cluster or 
> environment. 
> >>>>>>> 
> >>>>>>> However, we've started to wonder whether colocating multiple 
> >>>>>>> environments in a single cluster like this is a good idea. The 
> first thing 
> >>>>>>> that gave us pause was federation and service discovery - as the 
> foo 
> >>>>>>> service, I'd love to be able to deploy to a cluster, then indicate 
> that I 
> >>>>>>> want to talk to the 'baz' service, and have it automatically find 
> the baz 
> >>>>>>> service in my cluster, and fall back to a secondary cluster if 
> it's not 
> >>>>>>> there. Having multiple environments in a single cluster means 
> every app in a 
> >>>>>>> cluster needs to not only know that it reaches a 'baz' service, 
> but it needs 
> >>>>>>> to know to specifically reach out to 'baz-dev|staging|prod' etc., 
> which 
> >>>>>>> pollutes everyone's configs. This is specifically because there's 
> no first 
> >>>>>>> class concept for "environment" in Kubernetes at the moment - only 
> what 
> >>>>>>> we've clobbered into namespaces, configs and service names. 
> (Something like 
> >>>>>>> hierarchical namespaces may be able to help with this.) 
> >>>>>>> 
> >>>>>>> The alternative we're considering is to have each cluster contain 
> >>>>>>> only a single environment. Having one environment per cluster 
> simplifies a 
> >>>>>>> lot of configuration and object definitions across the board, 
> because 
> >>>>>>> there's only one axis to worry about (cluster) instead of two 
> (cluster + 
> >>>>>>> environment). We can know implicitly that everything in a given 
> cluster 
> >>>>>>> belongs to a specific environment, potentially simplifying 
> configuration 
> >>>>>>> more broadly. It also feels like it might be a lot more natural of 
> a fit to 
> >>>>>>> Kubernetes' federation plans, but we haven't looked into this in 
> as much 
> >>>>>>> depth. 
> >>>>>>> 
> >>>>>>> But on the flip side, I've always understood Kubernetes' ultimate 
> >>>>>>> goal to be a lot more like Borg or an AWS availability zone or 
> region, where 
> >>>>>>> the software operates more at an infrastructure layer than the 
> application 
> >>>>>>> layer, because this dramatically improves hardware utilization and 
> >>>>>>> efficiency and minimizes the number of clusters to operate, scale, 
> etc. 
> >>>>>>> 
> >>>>>>> An extreme alternative we've heard is to actually bootstrap a 
> cluster 
> >>>>>>> per team, but that feels pretty far from the Kubernetes vision, 
> though we 
> >>>>>>> might be wrong about that as well. 
> >>>>>>> 
> >>>>>>> So, we'd love to hear opinions on not only what's recommended or 
> >>>>>>> possible today with Kubernetes, but what is the vision - should 
> Kubernetes 
> >>>>>>> clusters exist at an application/environment layer or at the 
> infrastructure 
> >>>>>>> layer? 
> >>>>>>> 
> >>>>>>> Thank you! 
> >>>>>>> Sam 
> >>>>>>> 
> >>>>>>> -- 
> >>>>>>> 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 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/GPaGOGxCDD8/unsubscribe. 
>
> >>>>>> To unsubscribe from this group and all its topics, 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-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 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/GPaGOGxCDD8/unsubscribe. 
>
> >>>>> To unsubscribe from this group and all its topics, 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-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 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/GPaGOGxCDD8/unsubscribe. 
>
> >>> To unsubscribe from this group and all its topics, 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-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-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.
  • Re: [kubern... 'John Huffaker' via Kubernetes user discussion and Q&A
    • Re: [k... 'David Oppenheimer' via Kubernetes user discussion and Q&A
      • Re... 'John Huffaker' via Kubernetes user discussion and Q&A
        • ... 'David Oppenheimer' via Kubernetes user discussion and Q&A
        • ... 'John Huffaker' via Kubernetes user discussion and Q&A
        • ... 'David Oppenheimer' via Kubernetes user discussion and Q&A
        • ... 'Tim Hockin' via Kubernetes user discussion and Q&A
        • ... 'John Huffaker' via Kubernetes user discussion and Q&A
        • ... 'David Oppenheimer' via Kubernetes user discussion and Q&A
        • ... jhuffaker via Kubernetes user discussion and Q&A
        • ... Tim St. Clair

Reply via email to