Hey,

My team is at the stage where we're seriously considering k8s - now running
mostly Marathon / Chronos (to be replaced with Rhythm
<https://github.com/mlowicki/rhythm>) on Mesos. Partially because its much
bigger community + the current state of Marathon which drifts more into
DC/OS. Option to have solid support for k8s experience would be really
beneficial since running multiple frameworks is a big plus.

I would be happy to help with it with things like prototyping on top of
mesos-go or whatever will be needed.


On Wed, Nov 28, 2018 at 5:38 AM Jie Yu <[email protected]> wrote:

> + user list as well to hear more feedback from Mesos users.
>
> I am +1 on this proposal to create a Mesos framework that exposes k8s API,
> and provide nodeless
> <https://docs.google.com/document/d/1Y1GEKOIB1u5P06YeQJYl9WVaUqxrq3fO8GZ7K6MUGms/edit>
> experience to users.
>
> Creating Mesos framework that provides k8s API is not a new idea. For
> instance, the following are the two prior attempts:
> 1. https://github.com/kubernetes-retired/kube-mesos-framework
> 2. https://mesosphere.com/product/kubernetes-engine/
>
> Both of the above solutions will run unmodified kubelets for workloads
> (i.e., pods). Some users might prefer that way, and we should not preclude
> that on Mesos. However, the reason this nodeless (aka, virtual kubelet)
> idea got me very excited is because it provides us an opportunity to create
> a truly integrated solution to bridge k8s and Mesos.
>
> K8s gets popular for reasons. IMO, the followings are the key:
> (1) API machinery. This includes API extension mechanism (CRD
> <https://docs.google.com/document/d/1Y1GEKOIB1u5P06YeQJYl9WVaUqxrq3fO8GZ7K6MUGms/edit>),
> simple-to-program client, versioning, authn/authz, etc.
> (2) It expose basic scheduling primitives, and let users/vendors focus on
> orchestration (i.e., Operators). In contrast, Mesos framework is
> significantly harder to program due to the need for doing scheduling also.
> Although we have scheduling libraries like Fenzo
> <https://github.com/Netflix/Fenzo>, the whole community suffers from
> fragmentation because there's no "default" solution.
>
> ** Why this proposal is more integrated than prior solutions?*
>
> This is because prior solutions are more like installer for k8s. You
> either need to pre-reserve resources
> <https://mesosphere.com/product/kubernetes-engine/> for kubelet, or fork
> k8s scheduler to bring up kubelet on demand
> <https://github.com/kubernetes-retired/kube-mesos-framework>. Complexity
> is definitely a concern since both systems are involved. In contrast, the
> proposal propose to run k8s workloads (pods) directly on Mesos by
> translating pod spec to tasks/executors in Mesos. It's just another Mesos
> framework, but you can extend that framework behavior using k8s API
> extension mechanism (CRD and Operator)!
>
> ** Compare to just using k8s?*
>
> First of all, IMO, k8s is just an API spec. Any implementation that passes
> conformance tests is vanilla k8s experience. I understand that by going
> nodeless, some of the concepts in k8s no longer applies (e.g.,
> NodeAffinity, NodeSelector). I am actually less worried about this for two
> reasons: 1) Big stakeholders are behind nodeless, including Microsoft, AWS,
> Alicloud, etc; 2) K8s API is evolving, and nodeless has real use cases
> (e.g., in public clouds).
>
> In fact, we can also choose to implement those k8s APIs that make the most
> sense first, and maybe define our own APIs, leveraging the extensibility of
> the k8s API machinery!
>
> If we do want to compare to upstream k8s implementation, i think the main
> benefit is that:
> 1) You can still run your existing custom Mesos frameworks as it is today,
> but start to provide your users some k8s API experiences
> 2) Scalability. Mesos is inherently more scalable than k8s because it
> takes different trade-offs. You can run multiple copies of the same
> frameworks (similar to marathon on marathon) to reach large scale if the
> k8s framework itself cannot scale beyond certain limit.
>
> ** Why putting this framework in Mesos repo?*
>
> Historically, the problem with Mesos community is fragmentation. People
> create different solutions for the same set of problems. Having a "blessed"
> solution in the Mesos repo has the following benefits:
> 1) License and ownership. It's under Apache already.
> 2) Attract contributions. Less fragmentation.
> 3) Established high quality in the repository.
>
> **** What's my suggestion for next steps? ****
>
> I suggest we create a working group for this. Any other PMC that likes
> this idea, please chime in here.
>
> - Jie
>
> On Fri, Nov 23, 2018 at 5:24 AM 张冬冬 <[email protected]>
> wrote:
>
>>
>>
>> 发自我的 iPhone
>>
>> > 在 2018年11月23日,20:37,Alex Rukletsov <[email protected]> 写道:
>> >
>> > I'm in favour of the proposal, Cameron. Building a bridge between Mesos
>> and
>> > Kubernetes will be beneficial for both communities. Virtual kubelet
>> effort
>> > looks promising indeed and is definitely a worthwhile approach to build
>> the
>> > bridge.
>> >
>> > While we will need some sort of a scheduler when implementing a provider
>> > for mesos, we don't need to implement and use a "default" one: a simple
>> > mesos-go based scheduler will be fine for the start. We can of course
>> > consider building a default scheduler, but this will significantly
>> increase
>> > the size of the project.
>> >
>> > An exercise we will have to do here is determine which parts of a
>> > kubernetes task specification can be "converted" and hence launched on a
>> > Mesos cluster. Once we have a working prototype we can start testing and
>> > collecting data.
>> >
>> > Do you want to come up with a plan and maybe a more detailed proposal?
>> >
>> > Best,
>> > Alex
>>
>

-- 
BR,
Michał Łowicki

Reply via email to