to Docker • An Introduction to Kubernetes • Deploying WSO2 products on Kubernetes • Carbon cluster discovery on Kubernetes • Monitoring server health • Artifact distribution • Propagating software updates • Load balancing with Nginx • Demo
applications and uploading existing apps • Hosting web applications and API backends • Using databases in the Cloud • Coding and debugging applications with Cloud IDE or desktop tools • Application lifecycle management • Custom URLs • Teamwork and social development • Issue and task tracking
dotCloud • Initial release in March 2013 • Initially used libvirt, LXC & systemd-nspawn • Introduced libcontainer: A standard interface for Linux containers https://en.wikipedia.org/wiki/Docker_(software)
Make horizontally scalable • Have more granular management for distributed applications (microservices) • Self healing systems http://googlecloudplatform.blogspot.com/2015/01/what-makes-a-container-cluster.html [image ref] https://www.docker.com/what-docker
to objects • Selectors use the label key to find a collection of objects matched with the same value ◦ L1 -> ClusterID = C1 ◦ L2 -> ClusterID = C2 Pod 1 http://kubernetes.io/v1.0/docs/user-guide/labels.html L1 Pod 2 L1 Pod 3 L1 Pod 3 L2 Pod 4 L2
features for replicating pods: ◦ Auto-healing ◦ Scaling ◦ Rolling updates ◦ Multiple release tracks Pod 1 http://kubernetes.io/v1.0/docs/user-guide/replication-controller.html Pod 2 Pod n Replication Controller
values with curl and other HTTP libraries • Store data in directories, similar to a file system • Watch a key or directory for changes and react to the new values https://coreos.com/etcd/ etcd
on each host • Uses etcd to store the network configuration, allocated subnets, and auxiliary data (host ips) https://github.com/coreos/flannel flannel
n Service Server 1 Server 2 Server n Pod 1 Service Server 1 Pod 1 Pod 2 Service Server 1 Server 2 Hazelcast member initialization Hazelcast member initialization Hazelcast member initialization 1 2 n
Manager Cluster Services Pod 3 Pod 4 Pod n Worker Cluster Services Manager Replication Controller Worker Replication Controller Client Gov Reg Conf Reg User Store
DI to Kubernetes Nodes Application Artifacts Template Module Product Distribution Docker Image (DI) Configurator JDK Execute Rolling Update Replication Controller
Creating applications and uploading existing apps • Hosting web applications and API backends • Using databases in the Cloud • Coding and debugging applications with Cloud IDE or desktop tools • Application lifecycle management • Custom URLs • Teamwork and social development • Issue and task tracking