This refactor removes the legacy KubeletConfig object and adds a new KubeletDeps object, which contains injected runtime objects and separates them from static config. It also reduces NewMainKubelet to two arguments: a KubeletConfiguration and a KubeletDeps. Some mesos and kubemark code was affected by this change, and has been modified accordingly. And a few final notes: KubeletDeps: KubeletDeps will be a temporary bin for things we might consider "injected dependencies", until we have a better dependency injection story for the Kubelet. We will have to discuss this eventually. RunOnce: We will likely not pull new KubeletConfiguration from the API server when in runonce mode, so it doesn't make sense to make this something that can be configured centrally. We will leave it as a flag-only option for now. Additionally, it is increasingly looking like nobody actually uses the Kubelet's runonce mode anymore, so it may be a candidate for deprecation and removal.
Kubernetes-Mesos
Kubernetes-Mesos modifies Kubernetes to act as an Apache Mesos framework.
Features On Mesos
Kubernetes gains the following benefits when installed on Mesos:
- Node-Level Auto-Scaling - Kubernetes minion nodes are created automatically, up to the size of the provisioned Mesos cluster.
- Resource Sharing - Co-location of Kubernetes with other popular next-generation services on the same cluster (e.g. Hadoop, Spark, and Chronos, Cassandra, etc.). Resources are allocated to the frameworks based on fairness and can be claimed or passed on depending on framework load.
- Independence from special Network Infrastructure - Mesos can (but of course doesn't have to) run on networks which cannot assign a routable IP to every container. The Kubernetes on Mesos endpoint controller is specially modified to allow pods to communicate with services in such an environment.
For more information about how Kubernetes-Mesos is different from Kubernetes, see Architecture.
Release Status
Kubernetes-Mesos is alpha quality, still under active development, and not yet recommended for production systems.
For more information about development progress, see the known issues or the kubernetes-mesos repository where backlog issues are tracked.
Usage
This project combines concepts and technologies from two already-complex projects: Mesos and Kubernetes. It may help to familiarize yourself with the basics of each project before reading on:
To get up and running with Kubernetes-Mesos, follow:
- the Getting started guide to launch a Kubernetes-Mesos cluster,
- the Kubernetes-Mesos Scheduler Guide for topics concerning the custom scheduler used in this distribution.