Amazon's native solution for managing containerized applications across multiple hosts in a cluster.
Provides mechanisms for application deployment, scheduling, updating, maintenance, and scaling.
Provided out of the box on AWS, cannot use on non-AWS systems. No extra cost.
1.0 release ~ July 2015
Container auto-recovery
Container load balancing with ELBs
Zero downtime deploys
Integrates with Docker Compose files
Integrates with CloudWatch monitoring and CloudTrail logging
Nice UI for management with AWS Console
New ECS CLI: Jérôme Petazzoni at AWS Reinvent
http://kubernetes.io/v1.1/docs/user-guide/overview.html
Open source system for managing containerized applications across multiple hosts in a cluster.
Provides mechanisms for application deployment, scheduling, updating, maintenance, and scaling.
Provided out of the box on Google Computer Engine, but can be used on any system
1.0 release: July 2015
Opinionated framework that handles a lot for you
Supports Docker and Rocket containers
Everything runs inside Pods that are managed by replication controllers -- monitoring state and restarting/creating as necessary
Uses labels to handle grouping
Every pod gets its own virtual IP address, networking is flat
Pods can be grouped into services that gives one IP address for the group and a DNS name
Kube-proxy keeps track of pod changes for a service
http://kubernetes.io/v1.1/docs/getting-started-guides/README.html
AWS:
export KUBERNETES_PROVIDER=aws; wget -q -O - https://get.k8s.io | bash
Local: Can run in Docker
GCE: Provided
Anything else: Complicated
Docker's native clustering platform
Simple tool for clustering a group of hosts that supports to full Docker API
1.0 release in Nov 2015
Supports full docker API which means any existing docker tools can work with the cluster
Integrates with Docker machine for easy swarm creation, Docker compose, and Docker networking (introduced in 1.9)
Can schedule container placement based on "spread", "binpack", or "random" as well as filters such as general constraints (OS, kernel version, etc), health, affinity, dependency, or port
"Batteries removable" philosophy - users choose what to add/subtract or how to use
Download docker toolbox:
https://www.docker.com/docker-toolbox
Run "docker-machine" to create instances
Are you running in GKE? Yes, Kubernetes
Are you running in AWS EC2 exclusively? Yes, ECS
If no to both.... it's complicated.
Do you want a lot of power now? Yes --> Are you willing to build a lot of your own plumbing? Yes, Docker Swarm, No, Kubernetes
Do you want a one framework solution? Yes? Kubernetes.
Do you want the most future proof solution? Yes, probably Docker Swarm
Wondering what we picked? I'll tell you next month.