 [ ← blog / kubernetes ](/) Jul 29, 2019  ·  \#kubernetes  ·  3 min read 

# Picking up and playing with Kubernetes



I have been following along with Kubernetes for the past few years. This year I have been paying more attention and have decided to pick up Kubernetes and give it a try. To get started, I picked up the audiobook version of [The Kubernetes Book by Nigel Poulton](https://amzn.to/2YsolER). There's so much reading material available that I wanted to start with a good audio resource to digest as I finish moving out of our old house. I am only halfway through the audiobook, but it has proven to be a great resource at learning some of the basic concepts. Those Kubernetes manifest files seem a little less daunting and I'm hoping to write and share about my journey as well.

## Playing with Kubernetes

My main reason for the delay was the cost of having a Kubermetes playground. Kubernetes requires a series of nodes within the cluster. You need at least one master node in a Kubernetes cluster to perform all of the orchestration operations. That means you need a minimum of two virtual machines in a cluster.

There are a few ways to play around with Kubernetes.

### Docker for Desktop

For those of us running macOS or Windows, the Docker for Desktop application can run as a single-node Kubernetes cluster. You can still use Docker as normal for managing containers and Docker images. However, Docker will not be able to manipulate containers (pods) started by Kubernetes.

Documentation:

- <https://docs.docker.com/docker-for-mac/#kubernetes>
- <https://docs.docker.com/docker-for-windows/#kubernetes>

     ![](/sites/default/files/styles/large/public/Screen%20Shot%202019-07-29%20at%202.08.07%20PM.png?itok=rF1E1Cg5) 

 

### minikube

[minikube](https://github.com/kubernetes/minikube) allows you to implement a local Kubernetes cluster. I had heard of MiniKube but never tried it out. I have limited disk space remaining on my devices and constantly have to wipe out Docker's disk. minikube sets up a virtual machine that runs your local cluster.

### Play with Kubernetes

The Kubernetes Book made me aware of a Kubernetes playground! If you visit <https://labs.play-with-k8s.com/> you can log in using your GitHub or Docker Hub credentials to receive a sandboxed Kubernetes environment for four hours.

     ![](/sites/default/files/styles/large/public/Screen%20Shot%202019-07-29%20at%202.25.45%20PM.png?itok=gOnllFSu) 

 

This is exactly like [Simplytest.me](https://simplytest.me/) which spins up sandbox Drupal environments.

### DigitalOcean

However, I went to [DigitalOcean](https://m.do.co/c/98891fba1053). Thanks to [DigitalOcean's managed Kubernetes service](https://m.do.co/c/98891fba1053), I have been able to get off the ground fairly easily. DigitalOcean is the most cost-effective solution as you only need to pay for nodes which will host your application. I have a single-node cluster that has a load balancer and object storage. All together this comes out to about $25 a month.

### Jeff Geerlings Dramble

What I *really* wanted to do is build a [Raspberry Pi Dramble](https://www.pidramble.com/), a creation by [Jeff Geerling](https://www.jeffgeerling.com/). The Pi Dramble is a Kubernetes cluster running on a series of Raspberry Pis. The entire products list is outlined so that you can build your own: <https://www.pidramble.com/wiki/hardware/pis>. I just know that I would end up buying all of the equipment and six months later I still would have components in their boxes. I'm hoping to build one during winter break this year and spend the years-end on heavier Kubernetes experimentation.

 

  ![](/themes/custom/mglaman/images/headshot.webp)Thanks for reading

I write about Drupal, PHP, and the quiet infrastructure behind large sites — caching, config, and testing. New posts land every week or two.

 [Subscribe via RSS →](/rss.xml) [About me →](/about-me) 

 



 

  [← Older

Using ReactPHP to run Drupal tasks

 ](/blog/using-reactphp-run-drupal-tasks) [Newer →

Using environment files over injected environment variables in Kubernetes

 ](/blog/using-environment-files-over-injected-environment-variables-kubernetes)