Kubernetes lets you manage multiple docker containers in a way that is less annoying. It does this by using a master server that controls multiple worker nodes. Each of these nodes can dynamically spin up docker images and begin taking requests. Kubernetes can also handle things like load balancing, and updating images to newer versions, things that would be fairly complicated otherwise.

Below I define and discuss the essential files that control how Kubernetes operates.

Kubeconfig

YAML file that contains all of the information needed to connect to the master node. Used with the kubectl command line interface.

apiVersion: <Version>
kind: Config // Type of yaml file
clusters: // Specifies the cluster(s) to connect to
- cluster:
	certificate-authority-data: <PEM-Certificate>
	server: <Master-Location>
  name: <Cluster-Name>
contexts: // Specifies the avilible combinations of cluster, user, and namespace
- context:
	cluster: <Cluster-Name>
	user: <Username>
	namespace: <Namespace>
  name: <Context-Name>
users: // Specifies available users
- user:
	client-certificate-data: <PEM-Cert>
     // more stuff here not important
  name: <Username>
current-context: <Context-To-Use>

Deployment YAML

A YAML file used to deploy many pods with various settings. Don’t need to know everything about this but here is more This is the manifest that tells the master how many pods it should be running and what those pods look like.

This deployment specified here is also deployed with kubectl.

Service YAML

YAML file that specifies a entry point to contact your pods and containers, providing automatic load balancing.

More on these files here