Intro to coreOS linux distributions and how it can be used to run docker based workloads in the cloud.
coreOS instances can be started in a cloudstack cloud, it makes use of cloud-init basics to
2. Who am
I ?
• Apache CloudStack and
licloud committer +
PMC member
• Looking at techs and
how they work together
• Half dev, half
community manager, +
half event planner
8. CoreOS
• Linux distribution
• Rolling upgrades
• Minimal OS
• Docker support
• etcd and fleet tools
to manage distributed
applications based on
containers.
• Cloud-init support
• Systemd units
12. CoreOS clustering
• etcd HA key value store
– Raft election algorithm
– Writes when majority in cluster has committed
update
– e.g 5 nodes, tolerates 2 nodes failure
• fleet distributed init system (schedules
systemd units in a cluster)
– Submits systemd units cluster wide
– Affinity, anti-affinity, global “scheduling”
13. “coreOS is the first cloud OS dedicated to
docker based application workloads”
24. Kubernetes
on CloudStack
• Find a CloudStack cloud that supports CoreOS
• Then use:
https://github.com/runseb/kubernetes-exoscale
• Libcloud to start nodes with coreOS template
• User data to pass cloud-configs
• Then start Kube* Service units with fleet
25. CClolouudd A APPI I
Libcloud startup
scripts
Etcd cluster
5 nodes
Etcd cluster
5 nodes
Discovery service to
Discovery service to
bootstrap
bootstrap
PR welcome:
https://github.com/runseb/kubernetes-Kubernetes cluster
Kubernetes cluster
5 nodes
5 nodes
Start Kube* services via fleet
Run guestbook example
Start Kube* services via fleet
Run guestbook example
26. Docker
container
Docker
container
Docker
container
KK** Docker KK** KK**
container
Docker
container
ccoorreeOOSS ccoorreeOOSS ccoorreeOOSS
Cloud (e.g CloudStack Cloud (e.g CloudStack b baasseedd = = e exxoossccaalele))
Docker
container
API calls to
Kubernetes API