Pro Yearly is on sale from $80 to $50! »

Infrastructure Management Using Kubernetes

Infrastructure Management Using Kubernetes

Managing Infrastructure using Kubernetes. A brief introduction about Kubernetes, containers and their differences from standard virtualization


Omer Dawelbeit

November 23, 2017


  1. Infrastructure Management Using Kubernetes Dr. Omer Dawelbeit | @omerio |

    +OmerDawelbeit Annual Day 2017 Slides:
  2. About me ‘omerio’ • Co-founder GDG Reading, UK. 2015 -

    2016 • Co organizer GDG Cloud Emirates, UAE. 2017 - Now • Google Developer Expert (Cloud) • Open Source contributor (, Google • 16+ years as Tech Consultant (UK, Middle East & South East Asia) • PhD Computer Science, University of Reading (Cloud + Big Data) • Blog at, Tweets @omerio Reading, UK Dubai, UAE
  3. Content • What is Kubernetes? • What is a container?

    • Virtualization Overview • Where can I run it? • What can Kubernetes do and why use it? • Kubernets Cluster Overview
  4. Kubernetes & Containers

  5. What is Kubernetes? Greek for “Helmsman”; also the root of

    the words “governor” and “cybernetic” • An Open Source system that runs and manages containers • Inspired and informed by Google’s experiences and internal systems • Supports multiple cloud and bare-metal environments • Supports multiple container runtimes (Docker, Rocket) • 100% Open source, written in Go Manage applications, not machines
  6. What is a container? • Lightweight environment • Static application

    environment • No external dependencies • Application isolation • Reusable, runnable artifacts • Loosely coupled • Portable Run containers on bare metal already:
  7. Virtualization Overview Live migration

  8. Virtual Infrastructure

  9. Containers vs. VMs Typical VMs Containers on bare metal Containers

    on VMs
  10. Containers Orchestration

  11. Where can I run it? Laptop to high-availability multi-node cluster

    Hosted or self managed On-Premise or Cloud (GCP, AWS, Azure, Bluemix, ..) Bare Metal or Virtual Machines Most OSes (inc. RedHat Atomic, Fedora, CentOS) Or just a bunch of Raspberry PIs Many options, See Matrix for details Kubernetes Cluster Matrix:
  12. What can Kubernetes do and why use it? • co-locating

    helper processes, • mounting storage systems (volumes), • application health checking, • replicating application instances, • horizontal auto-scaling, • load balancing, • rolling updates, • and resource monitoring. • manage applications, not machines, • better resource utilisation and scheduling, • better application performance monitoring (APM), • consolidated logging and reporting, • ease of deployment management, Source: Google
  13. Cluster Overview • Pods • Containers • Labels • Replication

    Controllers* • Services • Nodes • Kubernetes Master A Deployment that configures a ReplicaSet is now the recommended way to set up replication
  14. Pods • Smallest deployable unit • Scheduled to nodes •

    Hosts containers and volumes • Ephemeral • Each has its own routable IP (no NAT) • Containers in a pod ◦ Tightly coupled ◦ Share IP, port and IPC namespaces ◦ Talk to each other through localhost
  15. Pods Questions • How to persist data across container restarts?

    • How to create multiple copies of a Pod? • How can containers reference each other reliably?
  16. Labels • Key/value pairs (tier=frontend, app=myapp) • Metadata with semantic

    meaning • Membership identifier (services & rc) • Queryable by Selectors (grouping)
  17. Replication Controllers / ReplicaSet • Keeps Pods running • Ensures

    N copies of Pods are running • Provides direct control of Pods • Uses a Pod template • Determines constituent Pods using Label Selector
  18. Replication Controllers

  19. Services • An abstraction • Logical grouping of Pods •

    Determines constituent Pods using Label Selector • Load balancing between constituent Pods • Gets a stable virtual IP, port & DNS name
  20. Services

  21. A few more... • Volumes • Secrets • Namespaces •

    Resource based scheduling ... spec: containers: - name: locust image: resources: requests: memory: "300Mi" cpu: "300m" limits: memory: "300Mi" cpu: "300m"
  22. Kubernetes is Open Source We want your help!

    Slack: #kubernetes-users @kubernetesio
  23. Thank you Stay in touch Google+: +OmerDawelbeit Twitter: @omerio LinkedIn:

    OmerDawelbeit Blog: Slides: