Infrastructure Management Using Kubernetes

Infrastructure Management Using Kubernetes

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

81f81af7cc5d1e767303b83bd76a1e46?s=128

Omer Dawelbeit

November 23, 2017
Tweet

Transcript

  1. 1.

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

    +OmerDawelbeit Annual Day 2017 Slides: https://goo.gl/HGgX5V
  2. 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. 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. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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?
  11. 16.

    Labels • Key/value pairs (tier=frontend, app=myapp) • Metadata with semantic

    meaning • Membership identifier (services & rc) • Queryable by Selectors (grouping)
  12. 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
  13. 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
  14. 20.
  15. 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"
  16. 23.

    Thank you Stay in touch Google+: +OmerDawelbeit Twitter: @omerio LinkedIn:

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