VSHN.timer #16: Learning Kubernetes

Welcome to another VSHN.timer! Every Monday, 5 links related to Kubernetes, OpenShift, CI / CD, and DevOps; all stuff coming out of our own chat system, making us think, laugh, or simply work better.

In this edition we are going to talk about how to learn and to get started with Kubernetes, the standard platform for cloud-native applications.

1. There’s no better way to learn a technology than by using it, playing with it, and creating new things on top of it. Kubernetes isn’t the exception, and there’s a myriad of different services available online to help you get started with it. To name a few, there’s „Kubernetes Deep Dive“ by A Cloud Guru,  „Introduction to Kubernetes“ by the Cloud Native Computing Foundation, and „Learn Kubernetes by Doing“ by Linux Academy. But today we’d like to highlight Learnk8s, a service with an unmistakable name: Kubernetes training for beginners and advanced developers, both online and on-site; all in bundles of e-books and videos. It might exactly be what your team needs to get started!

https://learnk8s.io/

2. Once you’ve learnt the basics, you might want to deploy apps in your own cluster. The easiest starting point is of course running a small cluster in your laptop, but how about a bigger, more challenging project? Chris Bensen wrote a 5-part series on how to build a Kubernetes cluster with Raspberry Pi machines. Here are the links to part 1, part 2, part 3, part 4, part 5, and part 6 of the series. The articles cover all the required steps, from the hardware setup to the software architecture. A fun weekend project!

http://chrisbensen.blogspot.com/2019/06/very-large-raspberry-pi-cluster-part-i.html

3. The meat and bread of Kubernetes is the descriptive approach of resources; YAML manifests (conveniently stored in a Git repository) describe the state of the system, and Kubernetes makes sure that the running cluster matches the manifests at all times. One of the first challenges new developers face with Kubernetes is, precisely, getting those manifests right. Matty from Prefetch Technologies wrote a short beginners guide to Kubernetes manifests, with all the information you need to start writing manifests in no time.

https://prefetch.net/blog/2019/10/16/the-beginners-guide-to-creating-kubernetes-manifests/

4. Writing YAML correctly is just the beginning of your Kubernetes journey. Very shortly you’ll be writing more and more manifests, dealing with persistent volume claims, secrets, `ConfigMap`, services, deployments, Ingress, storage classes, `StatefulSet`, network policies, RBAC, admission controls, autoscaling… and then you’ll realize that treating your clusters as cattle instead of pets is the right approach (and also, that sometimes things go terribly wrong). Kubernetes architecture patterns start to emerge; Microsoft and Alibaba have teamed up to create the Open Application Model, a standard specification for cloud-native apps, going beyond the 12 factor app. Microsoft published Rudr, a Kubernetes-based sample implementation of OAM freely available; but what does this all mean for app developers? Janakiram MSV wrote an article in The New Stack that provides some light on the implications of Rudr in the future of Kubernetes.

https://thenewstack.io/what-does-the-open-application-model-oam-and-rudr-mean-for-kubernetes-developers/

5. The tool of the week is a cool cross-platform command line tool (written in Go, of course!) to manage your clusters: K9s. It will help developers new to Kubernetes to manage their clusters using a straightforward, uncluttered visual tool. But before you continue working on that terminal window, remember to install a nice fixed-width font like Hack. Your eyes will thank you for that.

https://k9ss.io/

How did you get started with Kubernetes? Did you read any books on the subject? Do you know of any great learning resource you would like to share with the community? Get in touch with us through the form at the bottom of this page, and see you next week for another edition of VSHN.timer.