Kubernetes on Mesos
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Introduction
Kubernetes and Apache Mesos are two powerhouse technologies in the realm of container orchestration and cluster management. Kubernetes offers a comprehensive open-source system for automating deployment, scaling, and management of containerized applications. On the other hand, Apache Mesos abstracts resources across clusters, providing higher utilization and resource sharing. Combining Kubernetes on Mesos harnesses the strengths of both, facilitating seamless orchestration of containers alongside other applications in a Mesos-managed cluster.
Understanding Kubernetes on Mesos
Deploying Kubernetes on Mesos allows users to utilize Mesos as the underlying infrastructure for managing Kubernetes workloads. This configuration is especially advantageous for organizations that already operate Mesos clusters and seek to transition to, or integrate Kubernetes without entirely shifting their existing ecosystem.
Key Concepts
- Mesos Cluster: A group of nodes containing a Mesos master and agents. The master node is responsible for scheduling tasks, while the agents run the tasks.
- Kubernetes: An open-source platform designed to automate deploying, scaling, and operating application containers.
- Kubernetes-Mesos: An integration that allows Kubernetes to use Mesos as a scheduler amongst other Mesos frameworks.
Architecture Overview
When deploying Kubernetes on Mesos, Kubernetes acts as a framework in the Mesos ecosystem. Here is an overview of how the architecture is typically organized:
- Kubernetes-Mesos Framework: Operates as a Mesos framework and expresses resource requirements to the Mesos master.
- Mesos Master: Distributes resource offers across different frameworks, including the Kubernetes-Mesos framework.
- Kubelet (mesos-kubelet): Manages pods on each node, reporting resource utilization back to the Mesos master.
- Controller Manager (mesos-cloud): Ensures that the correct number of pods is running and the appropriate services are bound.
- etcd: Stores data and state information for Kubernetes clusters running on Mesos.
- API Server: Acts as the principal component that orchestrates API calls, facilitating communication between Kubernetes-Mesos components.
Deployment Example
Consider the scenario where an organization wants to deploy a web application using Kubernetes on an existing Mesos cluster. Here's how it would be approached:
- Cluster Initialization: Install Mesos on the desired nodes, configuring the master and agent roles.
- Kubernetes on Mesos Setup: Deploy the Kubernetes-Mesos framework. This involves configuring the mesos-cloud and kubelet to interface with Mesos effectively.
- Application Deployment: Utilize
kubectlto deploy a containerized version of your web application, for example:
- name: web-app-container
- containerPort: 80
- Seamless Resource Utilization: Mesos abstracts hardware resources enabling efficient scheduling and resource sharing amongst applications.
- Scalability: Both Mesos and Kubernetes provide robust scaling mechanisms, ensuring high availability and performance.
- Flexibility: Users can run diverse application types simultaneously, like big data applications (Apache Hadoop, Apache Spark) alongside Kubernetes workloads.
- Complexity: Integrating two sophisticated systems can increase logistical complexity, requiring skilled personnel to manage deployments and troubleshoot issues.
- Overhead: Running dual orchestrators could potentially introduce additional overhead, depending on workload and infrastructure efficiency.
- Hybrid Cloud Environments: Organizations leveraging hybrid cloud infrastructures can benefit from efficient resource distribution using Mesos while deploying modern microservices applications via Kubernetes.
- Legacy Applications: Enterprises with existing Mesos applications looking to adopt Kubernetes without a complete migration can incrementally transition with Kubernetes-Mesos.
Related reading
- Kubernetes Persistent Volume Access Modes ReadWriteOnce vs ReadOnlyMany vs ReadWriteMany
- kubernetes persistent volume accessmode
- Kubernetes Persistent Volume Claim Indefinitely in Pending State
- Kubernetes persistent volume overriding existing data in the pod/container
- Kubernetes pod distribution amongst nodes
- Kubernetes Pod fails with CrashLoopBackOff
- kubernetes petset on google cloud
- Kubernetes pods are stuck after scale up AWS. Multi-Attach error for volume

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.