mesos/

directory
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2016 License: Apache-2.0

README

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.

Features On DCOS

Kubernetes can also be installed on Mesosphere DCOS, which runs Mesos as its core. This provides the following additional enterprise features:

  • High Availability - Kubernetes components themselves run within Marathon, which manages restarting/recreating them if they fail, even on a different host if the original host might fail completely.
  • Easy Installation - One-step installation via the DCOS CLI or DCOS UI. Both download releases from the Mesosphere Universe, Multiverse, or private package repositories.
  • Easy Maintenance - See what's going on in the cluster with the DCOS UI.

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:

Analytics

Directories

Path Synopsis
cmd
k8sm-controller-manager
This package main implements the executable Kubernetes Mesos controller manager.
This package main implements the executable Kubernetes Mesos controller manager.
k8sm-executor
This package main implements the executable Kubernetes Mesos executor.
This package main implements the executable Kubernetes Mesos executor.
k8sm-scheduler
This package main implements the executable Kubernetes Mesos scheduler.
This package main implements the executable Kubernetes Mesos scheduler.
km
This package main morphs all binaries under cmd/ and several other stock Kubernetes binaries into a single executable.
This package main morphs all binaries under cmd/ and several other stock Kubernetes binaries into a single executable.
pkg
assert
Package assert is an utility package containing reusable testing functionality extending github.com/stretchr/testify/assert
Package assert is an utility package containing reusable testing functionality extending github.com/stretchr/testify/assert
backoff
Package backoff provides backoff functionality with a simple API.
Package backoff provides backoff functionality with a simple API.
controllermanager
Package controllermanager is largely a clone of the upstream implementation, with additional functionality to select between stock or a customized endpoints controller.
Package controllermanager is largely a clone of the upstream implementation, with additional functionality to select between stock or a customized endpoints controller.
election
Package election provides interfaces used for master election.
Package election provides interfaces used for master election.
executor
Package executor includes a mesos executor, which contains a kubelet as its member to manage containers.
Package executor includes a mesos executor, which contains a kubelet as its member to manage containers.
executor/config
Package config contains executor configuration constants.
Package config contains executor configuration constants.
executor/messages
Package messages exposes executor event/message names as constants.
Package messages exposes executor event/message names as constants.
executor/service
Package service contains the cmd/k8sm-executor glue code.
Package service contains the cmd/k8sm-executor glue code.
hyperkube
Package hyperkube facilitates the combination of multiple kubernetes-mesos components into a single binary form, providing a simple mechanism for intra-component discovery as per the original Kubernetes hyperkube package.
Package hyperkube facilitates the combination of multiple kubernetes-mesos components into a single binary form, providing a simple mechanism for intra-component discovery as per the original Kubernetes hyperkube package.
minion
Package minion contains the executor and proxy bootstrap code for a Mesos slave
Package minion contains the executor and proxy bootstrap code for a Mesos slave
minion/config
Package config contains minion configuration constants.
Package config contains minion configuration constants.
minion/tasks
Package tasks provides an API for supervising system processes as Task's.
Package tasks provides an API for supervising system processes as Task's.
node
Package node provides utilities to create and update nodes
Package node provides utilities to create and update nodes
offers
Package offers contains code that manages Mesos offers.
Package offers contains code that manages Mesos offers.
offers/metrics
Package metrics defines and exposes instrumentation metrics related to Mesos offers.
Package metrics defines and exposes instrumentation metrics related to Mesos offers.
podutil
podutil contains utilities for reading, writing and filtering streams and lists of api.Pod objects.
podutil contains utilities for reading, writing and filtering streams and lists of api.Pod objects.
proc
Package proc provides opinionated utilities for processing background operations and future errors, somewhat inspired by libprocess.
Package proc provides opinionated utilities for processing background operations and future errors, somewhat inspired by libprocess.
profile
Package profile contains reusable code for profiling Go programs with pprof.
Package profile contains reusable code for profiling Go programs with pprof.
queue
Package queue provides several queue implementations, originally inspired by Kubernetes pkg/client/cache/fifo.
Package queue provides several queue implementations, originally inspired by Kubernetes pkg/client/cache/fifo.
redirfd
Some file descriptor manipulation funcs (Unix-Only), inspired by https://github.com/skarnet/execline/blob/master/src/execline/redirfd.c
Some file descriptor manipulation funcs (Unix-Only), inspired by https://github.com/skarnet/execline/blob/master/src/execline/redirfd.c
runtime
Package runtime provides utilities for semaphores (chan struct{}), a simple Latch implementation, and metrics for reporting handled panics.
Package runtime provides utilities for semaphores (chan struct{}), a simple Latch implementation, and metrics for reporting handled panics.
scheduler
Package scheduler implements the Kubernetes Mesos scheduler.
Package scheduler implements the Kubernetes Mesos scheduler.
scheduler/components
Package components implements independent aspects of the scheduler which do not use Framework or Scheduler internals, but rely solely on the Scheduler interface.
Package components implements independent aspects of the scheduler which do not use Framework or Scheduler internals, but rely solely on the Scheduler interface.
scheduler/components/algorithm
Package algorithm implements the SchedulerAlgorithm
Package algorithm implements the SchedulerAlgorithm
scheduler/components/algorithm/podschedulers
Package podschedulers defines an interface (w/ implementations) for matching pods against offers.
Package podschedulers defines an interface (w/ implementations) for matching pods against offers.
scheduler/components/binder
Package binder implements the Binder which launched a task and let the executor do the actual binding.
Package binder implements the Binder which launched a task and let the executor do the actual binding.
scheduler/components/controller
Package controller implements the scheduling controller which waits for pod events from the queuer (i.e.
Package controller implements the scheduling controller which waits for pod events from the queuer (i.e.
scheduler/components/deleter
Package deleter implements the deleter which listens for pod DELETE events from the apiserver and kills tasks for deleted pods.
Package deleter implements the deleter which listens for pod DELETE events from the apiserver and kills tasks for deleted pods.
scheduler/components/errorhandler
Package errorhandler implements the ErrorHandler which handles scheduer error and possibly requeue pods for scheduling again.
Package errorhandler implements the ErrorHandler which handles scheduer error and possibly requeue pods for scheduling again.
scheduler/components/framework
Package framework implements the Mesos scheduler.
Package framework implements the Mesos scheduler.
scheduler/components/podreconciler
Package podreconciler implements pod reconciliation of pods which failed to launch, i.e.
Package podreconciler implements pod reconciliation of pods which failed to launch, i.e.
scheduler/components/tasksreconciler
Package taskreconciler implement Mesos task reconciliation.
Package taskreconciler implement Mesos task reconciliation.
scheduler/config
Package config provides mechanisms for low-level scheduler tuning.
Package config provides mechanisms for low-level scheduler tuning.
scheduler/constraint
Package constraint exposes Marathon-like constraints for scheduling pods.
Package constraint exposes Marathon-like constraints for scheduling pods.
scheduler/errors
Package errors contains all scheduler wide used errors
Package errors contains all scheduler wide used errors
scheduler/executorinfo
Package executorinfo provides a lru-based executor info registry as well as some utility methods.
Package executorinfo provides a lru-based executor info registry as well as some utility methods.
scheduler/ha
Package ha encapsulates high-availability scheduler concerns.
Package ha encapsulates high-availability scheduler concerns.
scheduler/integration
Package integration implements integration tests.
Package integration implements integration tests.
scheduler/meta
Package meta defines framework constants used as keys in k8s annotations that are attached to k8s pods.
Package meta defines framework constants used as keys in k8s annotations that are attached to k8s pods.
scheduler/metrics
Package metrics defines and exposes instrumentation metrics of the scheduler.
Package metrics defines and exposes instrumentation metrics of the scheduler.
scheduler/podtask
Package podtask maps Kubernetes pods to Mesos tasks.
Package podtask maps Kubernetes pods to Mesos tasks.
scheduler/queuer
Package queuer implements a Pod Queuer which stores and yields pods waiting being scheduled.
Package queuer implements a Pod Queuer which stores and yields pods waiting being scheduled.
scheduler/resources
Package resources contains the Mesos scheduler specific resource functions
Package resources contains the Mesos scheduler specific resource functions
scheduler/service
Package service contains the cmd/k8sm-scheduler glue code
Package service contains the cmd/k8sm-scheduler glue code
service
Package service is largely a clone of the stock Kubernetes endpoints controller, extended with some very specific functionality related to kubernetes-mesos specific host-pod port mapping.
Package service is largely a clone of the stock Kubernetes endpoints controller, extended with some very specific functionality related to kubernetes-mesos specific host-pod port mapping.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL