Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

More Decks by Omer Dawelbeit

Other Decks in Technology


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

    +OmerDawelbeit Annual Day 2017 Slides: https://goo.gl/HGgX5V
  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 (ecarf.io, cloudex.io) Google • 16+ years as Tech Consultant (UK, Middle East & South East Asia) • PhD Computer Science, University of Reading (Cloud + Big Data) • Blog at omerio.com, 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: https://www.youtube.com/watch?v=coFIEH3vXPw
  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: http://bit.ly/1MmhpMW
  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 http://omerio.com/2015/12/18/learn-the-kubernetes-key-concepts-in-10-minutes/ 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 http://blog.kubernetes.io/2015/06/the-distributed-system-toolkit-patterns.html
  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: gcr.io/rabbit-skateboard/guestbook:gdg-rtv resources: requests: memory: "300Mi" cpu: "300m" limits: memory: "300Mi" cpu: "300m"
  22. Kubernetes is Open Source We want your help! http://kubernetes.io https://github.com/kubernetes/kubernetes

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

    OmerDawelbeit Blog: omerio.com Slides: https://goo.gl/HGgX5V