
Ask HN: Are you learning Kubernetes/Docker? What resources are you using? - jonathan-kosgei
I&#x27;ve worked with a number of clients who engaged me to do nothing more than teach&#x2F;guide them through how to use Docker and Kubernetes (especially Kubernetes).
They all mention the inadequacy of existing learning resources.<p>So my question is, what resources did you&#x2F;are you using to learn Kubernetes and Docker?<p>I&#x27;ve been working with Kubernetes and Docker for a couple of years and I&#x27;m thinking of developing a course drawing on the knowledge I&#x27;ve acquired.
======
imauld
I recently read the book "Kubernetes: Up & Running" and it was a great
resource. Written by Kelsey Hightower it's short and to the point has a bunch
of great examples.

As a starter I would get Minikube going on your laptop:
[https://kubernetes.io/docs/getting-started-
guides/minikube/](https://kubernetes.io/docs/getting-started-guides/minikube/)

Then write a small REST app in your favorite language, nothing fancy just
something you can easily deploy. Get it running in Docker, and the minikube.
Google the problems you have along the way. You will learn a lot by doing
this. Now deploy another little app into your minikube cluster and have them
start communicating over the clusters network.

This will give you a good start and then you'll know enough to start seeking
out more.

~~~
jonathan-kosgei
Great points +1

------
rbradford
When my team was learning about Kubernetes we worked through Kelsey
Hightower's "Kubernetes the Hard Way":
[https://github.com/kelseyhightower/kubernetes-the-hard-
way](https://github.com/kelseyhightower/kubernetes-the-hard-way)

Obviously this much more complicated that using a tool such as kubeadm to
deploy Kubernetes however it gives you a really good understanding of how a
Kubernetes cluster is put together.

One of my colleagues used the experience from working through this with a set
of VMs to create a tool called kubicle: [https://ciao-
project.github.io/kubicle.html](https://ciao-project.github.io/kubicle.html)

This allows you to build a Kubernetes cluster on your own physical machines by
building it on top of a Ciao cluster if you're not able to use public cloud
hosted VMs. For learning you can combine this with Ciao's "singlevm"/ccloudvm
mode to run a cluster inside a VM (with nested VMs.)

Full disclosure: I currently work on the Ciao team @ Intel :-)

------
indescions_2017
I got started with the kubectl command line function as it was packaged with
Google Cloud SDK. Then experimented with Minikube locally.

I think what you really want is something like a "Minikube in the Cloud"
learning environment. Where you walk students through building an actual
service. But if they make mistakes, nothing catches fire ;)

Another recommendation is a gentle intro to serverless deployments such as
Fission and Kubeless, since that is maybe where everyone's headed in the near
future. Also a great way to introduce design thinking, architecture,
distributed systems, fault tolerance, decentralization, etc.

[http://fission.io/](http://fission.io/)

~~~
jonathan-kosgei
Thanks for the input :)

I think installing Kubernetes and covering the whole setup especially for
production is a whole topic in itself. Hence minikube would be very convenient
for students.

That said I've always appreciated an example first approach (with a to the
point explanation) other than pure plain theory.

------
mjhea0
Looking for something a bit more advanced? Check out
[https://testdriven.io/](https://testdriven.io/)

~~~
jonathan-kosgei
haven't started it, but from what I've seen it looks to be very well built

------
segmondy
Official Kubernetes docs are the best I've seen so far and what I'm using.

------
cbb_
I found a blog series here:

[https://kumorilabs.com/blog/k8s-0-introduction-blog-
series-k...](https://kumorilabs.com/blog/k8s-0-introduction-blog-series-
kubernetes/)

It’s not necessarily the best resource for actually learning the ins and outs
of Kubernetes; however, I think it’s a good starting place.

After going through those, I worked on deploying a small application using
stuff covered in those labs.

------
rajathagasthya
I found the official Kubernetes tutorials to be really helpful as an intro:
[https://kubernetes.io/docs/tutorials/](https://kubernetes.io/docs/tutorials/)

------
tixocloud
Is there like a 1 pager summary of what Kubernetes/Docker is? Ever since my
transition to the business side, I feel like I've lost touch. What's the
benefit of deploying using Docker?

~~~
imauld
Isolation, repeatability and speed of deployment:

\- Docker images are portable. They will run anywhere there is Docker. No
surprise missing system packages when deploy.

\- They are isolated from the the rest of the machine. Inconsistencies between
dev and prod are minimized greatly.

\- Kubernetes allows you to deploy stateless, immutable images using a
declarative manifest. IMO this is far superior to imperative scripts that are
used in a lot of places.

\- Kubernetes pods start up in seconds when they are added or restarted.
Deployments for me routinely take under a minute. Compared to our EC2
deployment strategy which can easily take over half an hour to deploy a single
node.

The list goes on but these are the key things for me. I would suggest checking
out some videos by Kelsey Hightower is want to see more of it in action.

------
tmaly
I looked at it a few years back, and I read a book about docker on a flight
back from Asia.

I would be interested in some short to the point tutorials with practical
examples.

~~~
jonathan-kosgei
I'm considering creating the content as short video lectures. But they'd be
plenty of notes to go with the videos as well.

~~~
tmaly
I would prefer a blog series with maybe some type of interactive examples.

~~~
jonathan-kosgei
Noted. Checkout Docker Playground - [http://labs.play-with-
docker.com/](http://labs.play-with-docker.com/) for an interactive web based
Docker environment.

