ruk·si

☸️ Kubernetes

Updated at 2016-02-25 04:38

Kubernetes is a system for managing containerized workloads across multiple hosts. The main benefit of Kubernetes is the supreme automation after proper configuration, albeit proper configuration can be infinitely complex.

Kubernetes is written in Go. Building complex services on Kubernetes requires at least some Go knowledge to write small couple hundred line controllers. Kubernetes documentation is also rather lacking in some areas so reading the Go source code is common. But normal web app hosting should be pretty straight forward.

Don't host your first Kubernetes cluster yourself. It will be too much hassle to manage yourself, I promise you. Use Google GKE, or Amazon EKS or Azure AKS if you are feeling adventurous; all get the thing done but Google Kubernetes Engine is the most battle-tested.

Kubernetes cluster state is usually represented by YAML files. The YAML manifest used to define a Kubernetes entity and how the YAML looks when created are different but the fields have a lot of similarities. You can also extract the documents in differnet format like JSON.

apiVersion: v1
kind: Pod
metadata:
  ...
spec:
  ...
status:
  ...

The syntax to point to a specific field is .{name}.{list}[0].{name} Like, for example, .status.conditions[0].type for the example YAML above.

Sources