Ibrahim AshShohail

@ibrasho

Introduction to Kubernetes

Ibrahim AshShohail

  • VP Engineering @ HungerStation
    (We are growing and hiring!)


    Open-source contributor
    (Kubernetes, Go, go/dep ... etc)


    "TechTalks Saudi" organizer

@ibrasho

@ibrasho

HungerStation

http://archive.work-bench.com/blog/2016/07/12/why-kubernetes-is-foundational-for-fortune-500-digital-transformation/

Overview

What is Kubetnetes?

Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

What does Kubernetes mean? K8s?

The name Kubernetes originates from Greek, meaning helmsman or pilot, and is the root of governor and cybernetic. K8s is an abbreviation derived by replacing the 8 letters “ubernete” with “8”.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

Why?

Kubernetes provides a container-centric management environment. It orchestrates computing, networking, and storage infrastructure on behalf of user workloads. This provides much of the simplicity of Platform as a Service (PaaS) with the flexibility of Infrastructure as a Service (IaaS), and enables portability across infrastructure providers.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

Is it a PaaS?

Kubernetes is not a traditional, all-inclusive PaaS (Platform as a Service) system. Since Kubernetes operates at the container level rather than at the hardware level, it provides some generally applicable features common to PaaS offerings, such as deployment, scaling, load balancing, logging, and monitoring. However, Kubernetes is not monolithic, and these default solutions are optional and pluggable. Kubernetes provides the building blocks for building developer platforms, but preserves user choice and flexibility where it is important.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

Features

  • Automatic binpacking
  • Horizontal scaling
  • Automated rollouts and rollbacks
  • Storage orchestration
  • Self-healing
  • Service discovery and load balancing
  • Secret and configuration management
  • Batch execution

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

Stats

https://www.openhub.net/p/kubernetes

Stats

https://www.openhub.net/p/kubernetes

Concepts

What is a Pod?

  • Name comes from pod of whales or pea pod
  • smallest and simplest unit in the Kubernetes object model that you create or deploy
  • represents a running process on your cluster
  • group of one or more containers
  • with shared storage/network
  • specification for how to run the containers
  • contents are always co-located and co-scheduled
  • models an application-specific “logical host”

https://kubernetes.io/docs/concepts/workloads/pods/pod/

https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/

Workload Controllers

  • Replica Sets
  • Replication Controllers
  • Deployments
  • Stateful Sets
  • Daemon Sets
  • Jobs
  • Cron Jobs

Configuration & Secret Management

  • Config Maps
  • Secrets

Storage

  • Persistent Volumes
  • ​Persistent Volume Claims
  • Storage Classes

Networking, Service Discovery & Load Balancing

  • Services
  • Ingresses
  • Network Policies

Ecosystem

https://thenewstack.io/ebooks/kubernetes/state-of-kubernetes-ecosystem/

Q & A

Thank You

@ibrasho

Recommended Reading
https://cloud.google.com/kubernetes-engine/kubernetes-comic/

Intro to Kubernetes

By Ibrahim AshShohail

Intro to Kubernetes

  • 863