Kubernetes, Docker, CoreOS, and OpenStack for container workload management.
No audio, but there are annotations to follow along with the workload.
A video accompanies a Microservices Meetup talk that I presented on February 18, 2015 at https://www.youtube.com/watch?v=RfyIYhOzyPY
Acknowledgements to Kelsey Hightower for the workflow that I used, and Google for the example application shown.
2. About Me
• Compute Engineer, Cisco Cloud Services
• Blogger: www.VMTrooper.com
• Podcast: vBrownBag (www.ProfessionalVMware.com)
• Author: DevOps for VMware Administrators
– Container orchestration work with Kelsey Hightower (CoreOS)
3. Acknowledgements
• Kelsey for creating this sample Kubernetes on
CoreOS workflow
• Google for creating the Guestbook application
that I use during this demo.
4. What is OpenStack?
• Infrastructure-as-a-Service
• Private Cloud (on-premise or managed)
• Public Cloud (Rackspace)
12. Kubernetes Concepts
• Minions – Kubernetes worker nodes
• Pods – related application containers that run on a single host
• Service – Port on which an application is exposed that allows
load-balancing
• Replication Controller – Pod replications across different
minions
14. Deploy the CoreOS Control Cluster
• Boot CoreOS instance on OpenStack
– Create a Neutron Port with a static IP
– Boot a Nova Instance using that Neutron Port
• This instance is your etcd host
15. Define the Flannel Network Range
• etcdctl mk /coreos.com/network/config
'{"Network":"10.0.0.0/16"}'
16. Deploy the CoreOS Cluster Members
• Metadata tag to define CoreOS cluster
members to run Kubernetes components
17. Deploy Kubernetes
• fleet deploys the Kubernetes systemd unit
files
• This step downloads the binaries and runs the
services on the servers with the correct
metadata.
Fleet launches systemd unit files and ensures that they are always running if there are capable nodes
Fleet launches systemd unit files and ensures that they are always running if there are capable nodes
Cluster nodes with the kubernetes tag will be assigned to run the kubernetes binaries. This is not necessary
A simple JSON format for deploying applications as containers, defining replication settings, etc.
Kubernetes vs Fleet
fleet is intended to be a rock-solid distributed service manager
Higher-level orchestration can be provided by Kubernetes, Mesos, etc.
Kubernetes vs PaaS
PaaS provides additional capabilities on top of distributed container management.
Kubernetes is more focused on providing an API for deploying containers personally.
PaaS is focused on enabling application developers to run their Rails, Flask, etc. applications by a simple git push.
Gauge the needs of your IT customers as to which solution is more appropriate
Kubernetes vs Other Container Frameworks
Kubernetes team has a strong history in container management due to the Google background.
Kubernetes is beta, but it is already the foundation for the Google Container Engine service.
Compare various container frameworks to see which is best for you.