SlideShare a Scribd company logo
1 of 12
@wattsteve
Building Clustered Applications with
Kubernetes and Docker
Steve Watt
@wattsteve
Why Kubernetes?
@wattsteve
Kubernetes Cluster
Kubernetes Architectural Overview
Kubernetes Master Server(s)Kubernetes Master Server(s)
Linux Server(s)
etcd API Server
Controller Manager
Kubernetes NodeKubernetes Node
Linux Server
KubeletDocker
Kubernetes Proxy
Kubernetes NodeKubernetes Node
Linux Server
KubeletDocker
Kubernetes Proxy
Kubernetes NodeKubernetes Node
Linux Server
KubeletDocker
Kubernetes Proxy
Scheduler
@wattsteve
Installing Kubernetes
• Hosted Services: Google Compute Engine
• Support for a wide variety of Infrastructure (Azure,
Rackspace, vSphere, AWS)
• Support for several OS’ (RHEL, CentOS, Fedora,
Debian, Ubuntu, Atomic, CoreOS)
• Local but automated (Vagrant/Ansible) * Magic *
• Local but manual (Fedora) * What I use *
@wattsteve
What do you need to know to get started?
Pods
-Pods describe a tightly coupled group of containers that typically need to be deployed on the
same server because they share resources.
-Pods are described in Pod Files which also articulate what shared resources the containers in the
Pod require. An example of a Shared Resource is a Kubernetes Volume
-Pods are deployed on Kubernetes Nodes.
Labels
-Pods describe a tightly coupled group of containers that typically need to be deployed on the
same server because they share resources.
Services
-Pods and containers will die and get scheduled on different machines. Services provide you with
the ability to have a consistent, known endpoint for your pod that stays the same, regardless of
where your pod is moved to.
Replication Controllers (RCs)
-Replication Controllers are used to scale out Pods.
-RCs produce identical instances of pods that correspond to a replica count that has been set.
-Services will route requests between multiple instances of the same Pod.
Volumes
-Allow you to mount Local and Network Storage Systems to the containers with your Pods.
@wattsteve
CC flickr kk
Awesome! Now, lets build some applications
@wattsteve
Kubernetes Node 1Kubernetes Node 1
Kubernetes Cluster
NGINX Pod
NGINX ContainerNGINX Container
Kubernetes Node 2Kubernetes Node 2
NGINX Pod
Example 1 – Build a Scalable Web Application with Local Storage
Kubernetes MasterKubernetes Master
Browser
Request
Browser
Request
NGINX ServiceNGINX Service
NGINX RCNGINX RC
NGINX ContainerNGINX Container
@wattsteve
Kubernetes MasterKubernetes Master
Kubernetes Node 1Kubernetes Node 1
Kubernetes Cluster
NGINX Pod
NGINX ContainerNGINX Container
Browser
Request
Browser
Request
Kubernetes Node 2Kubernetes Node 2
MySQL Pod
Example 2 – Then use Labels to Hot “Upgrade” to Shared Storage
NGINX ContainerNGINX Container
NGINX ServiceNGINX Service
NGINX RCNGINX RC
@wattsteve
Kubernetes Node 1Kubernetes Node 1
Kubernetes Cluster
NGINX Pod
NGINX ContainerNGINX Container
Kubernetes Node 2Kubernetes Node 2
MySQL Pod
MySQL ContainerMySQL Container
Example 3 – Now lets add a Database
RBD
Network
Disk
RBD
Network
Disk
Kubernetes MasterKubernetes Master
Browser
Request
Browser
Request
NGINX ServiceNGINX Service
NGINX RCNGINX RC
@wattsteve
Kubernetes MasterKubernetes Master
Kubernetes Node 1Kubernetes Node 1
Kubernetes Cluster
Spark Worker Pod
Spark Worker ContainerSpark Worker Container
Terminal
Or
Zeppelin
Terminal
Or
Zeppelin
Kubernetes Node 2Kubernetes Node 2
Spark Worker Pod
Example 4 – Deploy Apache Spark to Analyze your data
Spark Worker ContainerSpark Worker Container
Spark Master ServiceSpark Master Service
Spark Worker RCSpark Worker RC
Spark Master Pod
Spark Master ContainerSpark Master Container
@wattsteve
Kubernetes MasterKubernetes Master
Kubernetes Node 1Kubernetes Node 1
Kubernetes Cluster
GlusterFS Pod
GlusterFS ContainerGlusterFS Container
Browser
Request
Browser
Request
Kubernetes Node 2Kubernetes Node 2
GlusterFS Pod
Example 5 – Deploying Storage Platforms in Kubernetes
GlusterFS ContainerGlusterFS Container
NGINX ServiceNGINX Service
NGINX RCNGINX RC
Kubernetes Node 3Kubernetes Node 3
NGINX Pod
NGINX ContainerNGINX Container
Mount
@wattsteve
Thanks for Listening!
Interested in following up?
Steve Watt
swatt@redhat.com
Examples:
https://github.com/wattsteve/containercon

More Related Content

What's hot

What's hot (20)

Marc Sluiter - 15 Kubernetes Features in 15 Minutes
Marc Sluiter - 15 Kubernetes Features in 15 MinutesMarc Sluiter - 15 Kubernetes Features in 15 Minutes
Marc Sluiter - 15 Kubernetes Features in 15 Minutes
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
What is Kubernets
What is  KubernetsWhat is  Kubernets
What is Kubernets
 
Moving to Kubernetes - Tales from SoundCloud
Moving to Kubernetes - Tales from SoundCloudMoving to Kubernetes - Tales from SoundCloud
Moving to Kubernetes - Tales from SoundCloud
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
GlueCon kubernetes & container engine
GlueCon kubernetes & container engineGlueCon kubernetes & container engine
GlueCon kubernetes & container engine
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStackOrchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStack
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014
Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014
Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container Engine
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
KubeCon CloudNativeCon 2016 Seattle - a report
KubeCon CloudNativeCon 2016 Seattle - a reportKubeCon CloudNativeCon 2016 Seattle - a report
KubeCon CloudNativeCon 2016 Seattle - a report
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
Multi-Container Apps spanning Docker, Mesos and OpenStack
Multi-Container Apps spanning Docker, Mesos and OpenStackMulti-Container Apps spanning Docker, Mesos and OpenStack
Multi-Container Apps spanning Docker, Mesos and OpenStack
 
The top 5 Kubernetes metrics to monitor
The top 5 Kubernetes metrics to monitorThe top 5 Kubernetes metrics to monitor
The top 5 Kubernetes metrics to monitor
 
Kubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupKubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetup
 
Containerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to KubernetesContainerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to Kubernetes
 

Similar to Building Clustered Applications with Kubernetes and Docker

Similar to Building Clustered Applications with Kubernetes and Docker (20)

Kubernetes automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
 
1. CNCF kubernetes meetup - Ondrej Sika
1. CNCF kubernetes meetup - Ondrej Sika1. CNCF kubernetes meetup - Ondrej Sika
1. CNCF kubernetes meetup - Ondrej Sika
 
Google Cloud Platform Kubernetes Workshop IYTE
Google Cloud Platform Kubernetes Workshop IYTEGoogle Cloud Platform Kubernetes Workshop IYTE
Google Cloud Platform Kubernetes Workshop IYTE
 
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar PresentationMulti-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
 
Multi-Cloud Orchestration for Kubernetes with Cloudify
Multi-Cloud Orchestration for Kubernetes with CloudifyMulti-Cloud Orchestration for Kubernetes with Cloudify
Multi-Cloud Orchestration for Kubernetes with Cloudify
 
A guide of PostgreSQL on Kubernetes
A guide of PostgreSQL on KubernetesA guide of PostgreSQL on Kubernetes
A guide of PostgreSQL on Kubernetes
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Containers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes LeoContainers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes Leo
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 
Introduction to Virtual Kubelet
Introduction to Virtual KubeletIntroduction to Virtual Kubelet
Introduction to Virtual Kubelet
 
Kuberenetes - From Zero to Hero
Kuberenetes  - From Zero to HeroKuberenetes  - From Zero to Hero
Kuberenetes - From Zero to Hero
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Kubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-Presentation-Syed-Murtaza-HassanKubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-Presentation-Syed-Murtaza-Hassan
 
Nodeless and serverless kubernetes
Nodeless and serverless kubernetesNodeless and serverless kubernetes
Nodeless and serverless kubernetes
 
An Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery FundamentalsAn Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery Fundamentals
 
Container Orchestration using kubernetes
Container Orchestration using kubernetesContainer Orchestration using kubernetes
Container Orchestration using kubernetes
 

More from Steve Watt (11)

Hadoop for the disillusioned
Hadoop for the disillusionedHadoop for the disillusioned
Hadoop for the disillusioned
 
Hadoop file systems
Hadoop file systemsHadoop file systems
Hadoop file systems
 
Apache con 2013-hadoop
Apache con 2013-hadoopApache con 2013-hadoop
Apache con 2013-hadoop
 
Apache con 2012 taking the guesswork out of your hadoop infrastructure
Apache con 2012 taking the guesswork out of your hadoop infrastructureApache con 2012 taking the guesswork out of your hadoop infrastructure
Apache con 2012 taking the guesswork out of your hadoop infrastructure
 
Mining the Web for Information using Hadoop
Mining the Web for Information using HadoopMining the Web for Information using Hadoop
Mining the Web for Information using Hadoop
 
Tech4Africa - Opportunities around Big Data
Tech4Africa - Opportunities around Big DataTech4Africa - Opportunities around Big Data
Tech4Africa - Opportunities around Big Data
 
Bridging Structured and Unstructred Data with Apache Hadoop and Vertica
Bridging Structured and Unstructred Data with Apache Hadoop and VerticaBridging Structured and Unstructred Data with Apache Hadoop and Vertica
Bridging Structured and Unstructred Data with Apache Hadoop and Vertica
 
Final deck
Final deckFinal deck
Final deck
 
Web Crawling and Data Gathering with Apache Nutch
Web Crawling and Data Gathering with Apache NutchWeb Crawling and Data Gathering with Apache Nutch
Web Crawling and Data Gathering with Apache Nutch
 
Introduction to Apache Hadoop
Introduction to Apache HadoopIntroduction to Apache Hadoop
Introduction to Apache Hadoop
 
Extractiv
ExtractivExtractiv
Extractiv
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Recently uploaded (20)

SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 

Building Clustered Applications with Kubernetes and Docker

  • 1. @wattsteve Building Clustered Applications with Kubernetes and Docker Steve Watt
  • 3. @wattsteve Kubernetes Cluster Kubernetes Architectural Overview Kubernetes Master Server(s)Kubernetes Master Server(s) Linux Server(s) etcd API Server Controller Manager Kubernetes NodeKubernetes Node Linux Server KubeletDocker Kubernetes Proxy Kubernetes NodeKubernetes Node Linux Server KubeletDocker Kubernetes Proxy Kubernetes NodeKubernetes Node Linux Server KubeletDocker Kubernetes Proxy Scheduler
  • 4. @wattsteve Installing Kubernetes • Hosted Services: Google Compute Engine • Support for a wide variety of Infrastructure (Azure, Rackspace, vSphere, AWS) • Support for several OS’ (RHEL, CentOS, Fedora, Debian, Ubuntu, Atomic, CoreOS) • Local but automated (Vagrant/Ansible) * Magic * • Local but manual (Fedora) * What I use *
  • 5. @wattsteve What do you need to know to get started? Pods -Pods describe a tightly coupled group of containers that typically need to be deployed on the same server because they share resources. -Pods are described in Pod Files which also articulate what shared resources the containers in the Pod require. An example of a Shared Resource is a Kubernetes Volume -Pods are deployed on Kubernetes Nodes. Labels -Pods describe a tightly coupled group of containers that typically need to be deployed on the same server because they share resources. Services -Pods and containers will die and get scheduled on different machines. Services provide you with the ability to have a consistent, known endpoint for your pod that stays the same, regardless of where your pod is moved to. Replication Controllers (RCs) -Replication Controllers are used to scale out Pods. -RCs produce identical instances of pods that correspond to a replica count that has been set. -Services will route requests between multiple instances of the same Pod. Volumes -Allow you to mount Local and Network Storage Systems to the containers with your Pods.
  • 6. @wattsteve CC flickr kk Awesome! Now, lets build some applications
  • 7. @wattsteve Kubernetes Node 1Kubernetes Node 1 Kubernetes Cluster NGINX Pod NGINX ContainerNGINX Container Kubernetes Node 2Kubernetes Node 2 NGINX Pod Example 1 – Build a Scalable Web Application with Local Storage Kubernetes MasterKubernetes Master Browser Request Browser Request NGINX ServiceNGINX Service NGINX RCNGINX RC NGINX ContainerNGINX Container
  • 8. @wattsteve Kubernetes MasterKubernetes Master Kubernetes Node 1Kubernetes Node 1 Kubernetes Cluster NGINX Pod NGINX ContainerNGINX Container Browser Request Browser Request Kubernetes Node 2Kubernetes Node 2 MySQL Pod Example 2 – Then use Labels to Hot “Upgrade” to Shared Storage NGINX ContainerNGINX Container NGINX ServiceNGINX Service NGINX RCNGINX RC
  • 9. @wattsteve Kubernetes Node 1Kubernetes Node 1 Kubernetes Cluster NGINX Pod NGINX ContainerNGINX Container Kubernetes Node 2Kubernetes Node 2 MySQL Pod MySQL ContainerMySQL Container Example 3 – Now lets add a Database RBD Network Disk RBD Network Disk Kubernetes MasterKubernetes Master Browser Request Browser Request NGINX ServiceNGINX Service NGINX RCNGINX RC
  • 10. @wattsteve Kubernetes MasterKubernetes Master Kubernetes Node 1Kubernetes Node 1 Kubernetes Cluster Spark Worker Pod Spark Worker ContainerSpark Worker Container Terminal Or Zeppelin Terminal Or Zeppelin Kubernetes Node 2Kubernetes Node 2 Spark Worker Pod Example 4 – Deploy Apache Spark to Analyze your data Spark Worker ContainerSpark Worker Container Spark Master ServiceSpark Master Service Spark Worker RCSpark Worker RC Spark Master Pod Spark Master ContainerSpark Master Container
  • 11. @wattsteve Kubernetes MasterKubernetes Master Kubernetes Node 1Kubernetes Node 1 Kubernetes Cluster GlusterFS Pod GlusterFS ContainerGlusterFS Container Browser Request Browser Request Kubernetes Node 2Kubernetes Node 2 GlusterFS Pod Example 5 – Deploying Storage Platforms in Kubernetes GlusterFS ContainerGlusterFS Container NGINX ServiceNGINX Service NGINX RCNGINX RC Kubernetes Node 3Kubernetes Node 3 NGINX Pod NGINX ContainerNGINX Container Mount
  • 12. @wattsteve Thanks for Listening! Interested in following up? Steve Watt swatt@redhat.com Examples: https://github.com/wattsteve/containercon

Editor's Notes

  1. Hi I’m Steve Watt from Red Hat ET. I am one of Red Hat’s Kubernetes Contributors. I’m going to be presenting on “Building Clustered Applications…” Kubernetes is a very fast moving project and it can feel a bit overwhelming for new folks, so my motivation for this talk is for you to leave here knowing how to use Kubernetes to Deploy and Manage your Containerized Applications. This talk won’t cover how Kubernetes is different from the other projects in the Container Orchestration and Management space To achieve this, I have 4-5 slides on what you need to know about Kubernetes, but the rest of the presentation is focused on various walkthroughs of different types of applications. Hopefully you are able to stitch together what you see to build your own application. But first, Who here has deployed Kubernetes? Who here has submitted a Kubernetes Pod before?
  2. My favorite example of the advantage that Kubernetes provides is if we contrast containers in Scale Up and Scale Out Architectures: Scale Up – Easy: Fairly trivial to launch and manage images on just a few servers. Scale Out – Hard: Too much to track when you have images across 400+ nodes on commodity hardware So we clearly lack an elegant solution Orchestrating and Managing clusters of containers. Kubernetes provides a DECLARATIVE framework for you to describe your Application and the Images it needs and its dependencies as a Pod file You submit it and Kubernetes handles the deployment and availability for you
  3. Firstly, Kubernetes is a Master / Worker Architecture that runs on Linux and is written in Go. You don’t have to know anything about Go to use it. You do need to be familiar terminals, JSON and YAML though. So lets go through the processes on the Master and Worker Nodes. Kube Master Server Etcd - Distributed Key/Value Store that the API Server uses to persist configuration information. Kube API Server - RESTful and Command Line interface. Handles the Creation of Objects. Scheduler – ensures Pods are scheduled. Can apply scheduling policies. Kube Controller Manager = Ensures Pod Replication Policies are implemented consistently. Kube Node – Kube Proxy -Network Proxy for Containers and Service Endpoints. Kubelet - Provisions the resources in the Pods provided it. Interacts with Docker to launch containers
  4. Kubernetes can be deployed on a whole host of Cloud Providers. GCE is a Service, the rest is IaaS. Its up to you which one you use. When I’m new I like to setup things manually so I can understand how it works together. But, if you feel that is too complex then you should check out Kubernetes-Ansible. The Author, Eric Paris is presenting on Wednesday. You should go to his session!
  5. These are the 5 Key things, you have to know in order to build applications within Kubernetes.
  6. So it sounds good in theory, lets check it out in practice. We’re going to build a scale out containerized web application using NGINX. We are going to build a layered application. So we’ll start small and then build up.
  7. Think Standalone EC2 Show Single Pod – CAT and RUN Show RC – CAT and RUN Show Service – CAT and RUN Get Pods, Describe Pods Lets check the finished result out with our client script simulating the request to the Services LEAVE Client Script RUNNING
  8. Think EC2 with EFS Show ENDPOINTS - CAT Show RC – CAT and RUN Lets check the finished result out with our client script simulating the request to the Services kubectl scale --replicas=0 rc nginx-local-controller
  9. Think EC2 with EBS Show how to create an RBD and make it available and then connect to it from MySQL. rbd create demo -s 1024 rbd list rbd map demo --pool rbd --name client.admin ls -l /dev/rbd? mkfs.ext4 /dev/rbd0 rbd unmap /dev/rbd0 CAT and RUN MySQL Pod. Explain RBD Block Device. DESCRIBE Pod Docker exec MySQL container MySQL> use us_states; MySQL> select * from states;
  10. GET Endpoints - Discuss that we’ll be using the GlusterFS Plugin again which means the endpoints will be needed CAT and SUBMIT the Spark Master Pod CAT and SUBMIT the Spark Master Service Pod SHOW the Spark Master in the BROWSER CAT and SUBMIT the Spark Worker RC SHOW the Spark Master in the BROWSER