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
Tweet

More Decks by Omer Dawelbeit

Other Decks in Technology

Transcript

  1. Infrastructure Management
    Using Kubernetes
    Dr. Omer Dawelbeit | @omerio | +OmerDawelbeit
    Annual Day 2017
    Slides: https://goo.gl/HGgX5V

    View Slide

  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

    View Slide

  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

    View Slide

  4. Kubernetes & Containers

    View Slide

  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

    View Slide

  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

    View Slide

  7. Virtualization Overview
    Live migration

    View Slide

  8. Virtual Infrastructure

    View Slide

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

    View Slide

  10. Containers Orchestration

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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?

    View Slide

  16. Labels
    ● Key/value pairs (tier=frontend,
    app=myapp)
    ● Metadata with semantic meaning
    ● Membership identifier (services & rc)
    ● Queryable by Selectors (grouping)

    View Slide

  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

    View Slide

  18. Replication Controllers

    View Slide

  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

    View Slide

  20. Services

    View Slide

  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"

    View Slide

  22. Kubernetes is Open Source
    We want your help!
    http://kubernetes.io
    https://github.com/kubernetes/kubernetes
    Slack: #kubernetes-users
    @kubernetesio

    View Slide

  23. Thank you
    Stay in touch
    Google+: +OmerDawelbeit
    Twitter: @omerio
    LinkedIn: OmerDawelbeit
    Blog: omerio.com
    Slides: https://goo.gl/HGgX5V

    View Slide