Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nkhare/container-orchestration
https://github.com/nkhare/container-orchestration
Last synced: about 10 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/nkhare/container-orchestration
- Owner: nkhare
- Created: 2016-01-05T01:14:37.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-04-01T05:28:00.000Z (over 8 years ago)
- Last Synced: 2024-06-17T15:54:07.001Z (5 months ago)
- Language: Shell
- Size: 192 KB
- Stars: 15
- Watchers: 5
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Why we need Container Orchestration
- We don't like pets in server farms :)
- We want zero downtime
- We want auto-scaling
- We want to go across different cloud providers# Container Orchestration Options
- [Docker Swarm](swarm/README.md)
- [Kubernetes](kubernetes/README.md)
- [Mesos Marathon](mesos/README.md)
- Cloud Foundry Diego
- Apache Aurora
- Amazon ECS
- Azure container ServiceAs you could guess, it becomes difficult to choose one. So we thought of taking one Real World App and deploy it in different orchestration engines. For now we would look into Docker Swarm, Kubernetes and Mesos marathon.
## What is needed to do the Container Orchestration
### Multiple Nodes to be part of a cluster
### Unique ID/Token to bind all the nodes in a unique cluster
### Container Engines
- Docker
- Rkt### Single source of truth about configuration for nodes
- Key-Value Store like etcd, consul### Network for containers of different nodes to talk to each other
- Some form of Overlay network like VxLAN.
- With possibility to plug different neworking solution like Calico.### One or more cluster master to manage the cluster and schedule the jobs/tasks
### Scheduler to schedule the containers on nodes based on
- Constraints, like run the container where SSD storage is available
- Affinity### Service discovery within the cluster
- Internal DNS server
- Through environment variables
- Load balancer, HA proxy### Access to external shared storage
- Volume plugins## Examples
We are going to look at two examples :-
### [dockchat](https://github.com/nicolaka/dockchat.git)
This is a simple example, which I borrowed from from [DockerCon EU tutorial](https://github.com/docker/dceu_tutorials/blob/master/02-orchestration.md). In that tutorial, the steps are given to orchestrate the simple chat application using Docker Swarm. Here would take that same app and deploy it using Kubernetes and Mesos.
- Swarm
* [Docker Compose - Single system](simple_dockchat/swarm/compose)
* [Docker Compose - Swarm Cluster](simple_dockchat/swarm/1_master_2_nodes)
* [Swarm cluster with Interlock](simple_dockchat/swarm/1_master_2_nodes_interlock)
* [Swarm cluster with Overlay network](simple_dockchat/swarm/1_master_2_nodes_overlay)
- [Kubernetes](simple_dockchat/kubernetes/)- [Mesos](simple_dockchat/mesos/)
### Magento
We thought a real world e-commerce platform would be a nice and came
across [Magento](https://magento.com/). While doing some browsing we
came across [this blog post](http://mageinferno.com/blog/deploy-magento-2-digital-ocean-tutum)
to deploy Magento2 on Tutum., which gave us good reference.So first we would deploy Magneto on differnet orhestration engines and
then experiment with features like replication, auto-scaling etc.TDB
## Credits
- [Nicola Kabar](https://github.com/nicolaka) putting down (dockchat)[https://github.com/nicolaka/dockchat] for [DockerCon EU'15 Tutorial](https://github.com/docker/dceu_tutorials/blob/master/02-orchestration.md)
- [Mark Shust](https://github.com/markoshust) for providing Magento2 Docker Compose file
https://github.com/mageinferno/magento2-docker-compose