An introduction to Kubernetes

Héctor Fabio Jiménez Saldarriaga

@c1b3rh4ck              @h3ctorjs

  • Harry Potter and Unix/Gnu-Linux Fanboy

  • Paranoic by default

  • Interested in Open Source and Open Communities

  • DevOps/SysOps practicioner

Agenda

  • What is kubernetes

  • Key features 

  • Kurbenetes Architecture

Container systems like Docker has (rightly) created a lot of excitement in the industry!

Now, containerization search to create a self-contained process

Alternatives to docker

and there is much more....

Pronounced like it is written....just said

Kurbenetiis

Sometimes called by his abreviation k8s

What is k8s?

Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. The open source project is hosted by the Cloud Native Computing Foundation (CNCF).

What is k8s

 It can be thought of as:

  • a container platform
  • a microservices platform
  • a portable cloud platform and a lot more.

Generations...

[1] Borg, Omega, and Kubernetes, Lessons learned from three container-management systems over a decade. 
[2] Timeline, https://blog.risingstack.com/the-history-of-kubernetes/

Scheduller...

Bin Packing problem

Knapsack problem

k8s  Architecture

What is k8s

Kubernetes provides a container-centric management environment :

What is k8s

k8s key goals  :

Who is using k8s?

k8s  Architecture

k8s  Architecture

k8s  Architecture

k8s  Architecture

k8s  Architecture

k8s architecture: PODS

k8s  Architecture

k8s Objects

Kubernetes Objects are persistent entities in the Kubernetes system. Kubernetes uses these entities to represent the state of your cluster. Specifically, they can describe:

  • What containerized applications are running (and on which nodes)
  • The resources available to those applications
  • The policies around how those applications behave, such as restart policies, upgrades, and fault-tolerance

k8s Objects

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Demo

Thank you So Much!

and go ahead and build great products using k8s

References

Kubernetes Talk, PTT

By Hector F. Jimenez Saldarriaga

Kubernetes Talk, PTT

Pereira Tech Talks Kubernetes Talk.

  • 525