KEMBAR78
Introducing Kubernetes | PPTX
By Vikram Sharma
Agenda
● Linux Containers
● Docker
● Kubernetes
● Kubernetes Architecture
● Kubernetes Demo
What is a container?
-Application and process delivery mechanism
-Stateless with all included dependencies
-Fast start, hyper dense, and portable
Linux Containers
• An operating
system–level
virtualization
method for running
multiple isolated
Linux systems
(containers) on a
single control host.
Linux Containers drawbacks:
• https://lwn.net/Articles/588309/
•Problem 1: effective virtualization.
•Problem 2: sharing resources among containers.
•Problem 3: making resource limits easy to understand.
•Problem 4: live migration.
•Problem 5: upstreaming.
•Problem 6: a common file system.
•Problem 7: inefficient storage.
Docker
● A platform for managing Linux Containers
● Began as an open-source implementation of the
deployment engine which powers Cloud
● Started in March 2013
● Provided an easy-to-use API and powerful container image
management features
● Attracted the community very fast
Problems with standalone
Docker
● Running a server cluster
on a set of Docker
containers, on a single
Docker host is vulnerable to
single point of failure!
Introducing
Kubernetes:
 Kubernetes is amature open-source platform for hosting
Docker containers in a clustered environment with multiple
Docker hosts.
 Provides container grouping, load balancing, auto-healing,
scaling features.
 Based on learning from internal Google projects.
 Contributors == Google, CodeOS, Redhat, Mesosphere,
Microsoft, HP, IBM, VMWare, Pivotal etc.
 Extensible / flexible API architecture.
Key Concepts of Kubernetes:
 Pod - A group of Containers
 Labels - Labels for identifying pods
 Kubelet - Container Agent
 Proxy - A load balancer for Pods
 etcd - A metadata service
 cAdvisor - Container Advisor provides resource
usage/performance statistics
 Replication Controller - Manages replication of
pods
 Scheduler - Schedules pods in worker nodes
 API Server - Kubernetes API server
Pods:
The primary primitive for running containerized workload.
-Unit of scheduling / resource envelope
-May contain one or more containers
-Containers share network, volumes, isolation components
Pods Cont.
What does a pod look like?
Kubernetes Architecture:
Kubernetes Services
Kubernetes object expressing pod networking endpoint
(internal / external IP address).
-Service is associate with pod through label selector
-ClusterIP–exposed on cluster-internal IP
-NodePort–exposed on nodes IP .via static port
-LoadBalancer–exposed externally on providers NLB
-ExternalName–map service to DNS name
Kubernetes Manifest
YAML file to declare desired state of Kubernetes
object types.
-Define Kubernetes type
-Define type specification
-Labels / Annotations
-Metadata
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Kubernetes demo:
Kubernetes object expressing pod networking endpoint
(internal / external IP address).
-Service is associate with pod through label selector
-ClusterIP–exposed on cluster-internal IP
-NodePort–exposed on nodes IP .via static port
-LoadBalancer–exposed externally on providers NLB
-ExternalName–map service to DNS name
References:
 https://kubernetes.io/docs/home/
 https://confluence.wdc.com/x/g05RHw
 https://confluence.wdc.com/x/qZ_DIQ
 Others…
Introducing Kubernetes
Introducing Kubernetes

Introducing Kubernetes

  • 1.
  • 2.
    Agenda ● Linux Containers ●Docker ● Kubernetes ● Kubernetes Architecture ● Kubernetes Demo
  • 3.
    What is acontainer? -Application and process delivery mechanism -Stateless with all included dependencies -Fast start, hyper dense, and portable
  • 5.
    Linux Containers • Anoperating system–level virtualization method for running multiple isolated Linux systems (containers) on a single control host.
  • 6.
    Linux Containers drawbacks: •https://lwn.net/Articles/588309/ •Problem 1: effective virtualization. •Problem 2: sharing resources among containers. •Problem 3: making resource limits easy to understand. •Problem 4: live migration. •Problem 5: upstreaming. •Problem 6: a common file system. •Problem 7: inefficient storage.
  • 8.
    Docker ● A platformfor managing Linux Containers ● Began as an open-source implementation of the deployment engine which powers Cloud ● Started in March 2013 ● Provided an easy-to-use API and powerful container image management features ● Attracted the community very fast
  • 9.
    Problems with standalone Docker ●Running a server cluster on a set of Docker containers, on a single Docker host is vulnerable to single point of failure!
  • 10.
  • 11.
    Kubernetes:  Kubernetes isamature open-source platform for hosting Docker containers in a clustered environment with multiple Docker hosts.  Provides container grouping, load balancing, auto-healing, scaling features.  Based on learning from internal Google projects.  Contributors == Google, CodeOS, Redhat, Mesosphere, Microsoft, HP, IBM, VMWare, Pivotal etc.  Extensible / flexible API architecture.
  • 12.
    Key Concepts ofKubernetes:  Pod - A group of Containers  Labels - Labels for identifying pods  Kubelet - Container Agent  Proxy - A load balancer for Pods  etcd - A metadata service  cAdvisor - Container Advisor provides resource usage/performance statistics  Replication Controller - Manages replication of pods  Scheduler - Schedules pods in worker nodes  API Server - Kubernetes API server
  • 13.
    Pods: The primary primitivefor running containerized workload. -Unit of scheduling / resource envelope -May contain one or more containers -Containers share network, volumes, isolation components
  • 14.
    Pods Cont. What doesa pod look like?
  • 15.
  • 16.
    Kubernetes Services Kubernetes objectexpressing pod networking endpoint (internal / external IP address). -Service is associate with pod through label selector -ClusterIP–exposed on cluster-internal IP -NodePort–exposed on nodes IP .via static port -LoadBalancer–exposed externally on providers NLB -ExternalName–map service to DNS name
  • 17.
    Kubernetes Manifest YAML fileto declare desired state of Kubernetes object types. -Define Kubernetes type -Define type specification -Labels / Annotations -Metadata apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
  • 18.
    Kubernetes demo: Kubernetes objectexpressing pod networking endpoint (internal / external IP address). -Service is associate with pod through label selector -ClusterIP–exposed on cluster-internal IP -NodePort–exposed on nodes IP .via static port -LoadBalancer–exposed externally on providers NLB -ExternalName–map service to DNS name
  • 19.