KEMBAR78
Kubernetes architecture | PDF
Kubernetes Architecture
Janakiram MSV
Analyst | Advisor | Architect
Janakiram & Associates
Google Developer Expert
Announcing
The Kubernetes Webinar Series
● Monthly webinar focused on helping you get started with Kubernetes
● Delivered by the experts from the container ecosystem
● Each webinar introduces a concept to accelerate your learning
● No specific prerequisites
○ Basic understanding of Docker will help
● All attendees will get $100 Google Cloud Platform Credits
● Win free annual and monthly subscriptions of MAPT eBook library
● The recording of this webinar will be available at Kubernetes.live
Objectives
● A closer look at Kubernetes cluster
● Master components
● Node components
● Pods
● Labels & Selectors
● Replication Controllers
● Services
Kubernetes Architecture
Kubernetes
Master
Node 1API
UI
CLI
Node 2
Node n
Node 3
Registry
Kubernetes Master
API Server Scheduler Controller
etcd
API
UI
CLI
Kubernetes Node
kube-proxy
Docker kubelet
Supervisord
fluentd
PodPod
Pod
Pod
Pod
Pod
Pod
Pod
Kubernetes
Master
AddonsDNS UI
A Simple Containerized Application
Python
Web App
Redis
Database
Client
Kubernetes Pod
● Group of one or more containers that are always co-located,
co-scheduled, and run in a shared context
● Containers in the same pod have the same hostname
● Each pod is isolated by
○ Process ID (PID) namespace
○ Network namespace
○ Interprocess Communication (IPC) namespace
○ Unix Time Sharing (UTS) namespace
● Alternative to a VM with multiple processes
Labels & Selectors
● Key/value pairs associated with Kubernetes objects
● Used to organize and select subsets of objects
● Attached to objects at creation time but modified at any time.
● Labels are the essential glue to associate one API object with other
○ Replication Controller -> Pods
○ Service -> Pods
○ Pods -> Nodes
Deploying a Pod
Pod Definition
Master
kube-p
roxyDocker kubelet
Supervisord
fluentd
Web Pod
Node
DB Pod
Pod Definition
Python
Redis
Services
● An abstraction to define a logical set of Pods bound by a policy by to
access them
● Services are exposed through internal and external endpoints
● Services can also point to non-Kubernetes endpoints through a
Virtual-IP-Bridge
● Supports TCP and UDP
● Interfaces with kube-proxy to manipulate iptables
● Service can be exposed internal or external to the cluster
Exposing Services
DB PodWeb
Pod
2
Web
Pod
1
Web
Pod
3
Client Node
Port
Cluster
IP
Demo
Creating Pods & Services
Python Web App & Redis DB
Replication Controller
● Ensures that a Pod or homogeneous set of Pods are always up and
available
● Always maintains desired number of Pods
○ If there are excess Pods, they get killed
○ New pods are launched when they fail, get deleted, or terminated
● Creating a replication controller with a count of 1 ensures that a Pod is
always available
● Replication Controller and Pods are associated through Labels
kube-p
roxyDocker kubelet
Supervisord
fluentd
Web
Pod
1
Scaling Pods with Replication Controller
RC Definition
Master
Node
Web
Pod
2
Web
Pod
3
3
DB Pod
Demo
Scaling Pods with Replication Controller
Summary
● Kubernetes Master runs the API, Scheduler and Controller services
● Each Node is responsible for running one or more Pods
● Pods are the unit of deployment in Kubernetes
● Labels associate one Kubernetes object with the other
● Replication Controller ensures high availability of Pods
● Services expose Pods to internal and external consumers
Upcoming Webinar
A Closer Look at Kubernetes Pods
9 AM PST, 26th October
This session will discuss the best practices of creating,
deploying, and managing Pods. We will take a closer look at
the storage and networking architecture of containers
running in the same Pod.
Register at kubernetes.live for the upcoming webinars
Thank You!
Send your Feedback / Questions / Comments
info@kubernetes.live

Kubernetes architecture

  • 1.
    Kubernetes Architecture Janakiram MSV Analyst| Advisor | Architect Janakiram & Associates Google Developer Expert
  • 2.
    Announcing The Kubernetes WebinarSeries ● Monthly webinar focused on helping you get started with Kubernetes ● Delivered by the experts from the container ecosystem ● Each webinar introduces a concept to accelerate your learning ● No specific prerequisites ○ Basic understanding of Docker will help ● All attendees will get $100 Google Cloud Platform Credits ● Win free annual and monthly subscriptions of MAPT eBook library ● The recording of this webinar will be available at Kubernetes.live
  • 3.
    Objectives ● A closerlook at Kubernetes cluster ● Master components ● Node components ● Pods ● Labels & Selectors ● Replication Controllers ● Services
  • 4.
  • 5.
    Kubernetes Master API ServerScheduler Controller etcd API UI CLI
  • 6.
  • 7.
    A Simple ContainerizedApplication Python Web App Redis Database Client
  • 8.
    Kubernetes Pod ● Groupof one or more containers that are always co-located, co-scheduled, and run in a shared context ● Containers in the same pod have the same hostname ● Each pod is isolated by ○ Process ID (PID) namespace ○ Network namespace ○ Interprocess Communication (IPC) namespace ○ Unix Time Sharing (UTS) namespace ● Alternative to a VM with multiple processes
  • 9.
    Labels & Selectors ●Key/value pairs associated with Kubernetes objects ● Used to organize and select subsets of objects ● Attached to objects at creation time but modified at any time. ● Labels are the essential glue to associate one API object with other ○ Replication Controller -> Pods ○ Service -> Pods ○ Pods -> Nodes
  • 10.
    Deploying a Pod PodDefinition Master kube-p roxyDocker kubelet Supervisord fluentd Web Pod Node DB Pod Pod Definition Python Redis
  • 11.
    Services ● An abstractionto define a logical set of Pods bound by a policy by to access them ● Services are exposed through internal and external endpoints ● Services can also point to non-Kubernetes endpoints through a Virtual-IP-Bridge ● Supports TCP and UDP ● Interfaces with kube-proxy to manipulate iptables ● Service can be exposed internal or external to the cluster
  • 12.
  • 13.
    Demo Creating Pods &Services Python Web App & Redis DB
  • 14.
    Replication Controller ● Ensuresthat a Pod or homogeneous set of Pods are always up and available ● Always maintains desired number of Pods ○ If there are excess Pods, they get killed ○ New pods are launched when they fail, get deleted, or terminated ● Creating a replication controller with a count of 1 ensures that a Pod is always available ● Replication Controller and Pods are associated through Labels
  • 15.
    kube-p roxyDocker kubelet Supervisord fluentd Web Pod 1 Scaling Podswith Replication Controller RC Definition Master Node Web Pod 2 Web Pod 3 3 DB Pod
  • 16.
    Demo Scaling Pods withReplication Controller
  • 17.
    Summary ● Kubernetes Masterruns the API, Scheduler and Controller services ● Each Node is responsible for running one or more Pods ● Pods are the unit of deployment in Kubernetes ● Labels associate one Kubernetes object with the other ● Replication Controller ensures high availability of Pods ● Services expose Pods to internal and external consumers
  • 18.
    Upcoming Webinar A CloserLook at Kubernetes Pods 9 AM PST, 26th October This session will discuss the best practices of creating, deploying, and managing Pods. We will take a closer look at the storage and networking architecture of containers running in the same Pod. Register at kubernetes.live for the upcoming webinars
  • 19.
    Thank You! Send yourFeedback / Questions / Comments info@kubernetes.live