Jethro's Braindump

Dev Ops


Open Containers Initiative

Features of a COE

  1. clustering
  2. scheduling
  3. scaling
  4. load balancing (pets to cattle)
    • monitoring services vs monitoring
  5. fault tolerance
  6. app deployment

Why use kubernetes

  1. google
  2. battle hardened
  3. features
  4. open source

Downsides to kubernetes

  1. complex
  2. zero to dev
  3. non-native
Feature Concept
Colocation Pods
Scaling/Fault Tolerance Replication controllers, replica sets
Load Balancing Services
App Deployment Rolling-updates


kubectl <— scheduler (which node is used for container launch etc.) api server controllers manager (replication controller etc.) etcd (service discovery)


Replication controller vs set

Controller Set
old way new way
works with rolling updates supports sets based selectors
imperative part of deployments


eg. I want to select these pods, add it to replication sets

Kubernetes Schema

Api Version v1
Kind Pod/ReplicaSet/ReplicaController
Metadata name/labels
Spec Containers

School of Dev Ops KataCoda

Articles on Kubernetes

Argues that Kubernetes is affordable and worth the try for personal projects.

The main arguments are:

  1. Kubernetes is reliable and scalable.
  2. It’s cheap to run: run HTTP proxy for each node, instead of using Google’s HTTP load balancer.
  3. Kubernetes makes rollback deployments trivial, since everything is containerised.

A response to the above article. Basically arguing that Kubernetes is very complex and has a lot of moving parts, which is wholly unnecessary for side projects.


Mesos is responsible for managing cluster resources (CPU, RAM, disk, etc) and the allocation of applications into those resources.

Dominant Resource Fairness

Two-level scheduler, compared to k8s one-level scheduler.

Scheduler scales a lot better than k8s (earlier).


Links to this note