Kubernetes Learning Path

Today I’ll be talking about Kubernetes, sometimes written as k8s. I’m not an expert on Kubernetes so I’ll be giving some of my thoughts on it and a plan for how to develop your skillset with it.

Kubernetes is a system used to manage the deployment, scaling and more of applications. At its simplest a service could be deployed based on its definition with the requirement to run x instances of it with a minimum of y resources. Kubernetes would then find a node (machine) to run a containerized instance of the application as many times as specified. Kubernetes is constantly ensuring the actual state of the service matches what is defined for the service. So this results in replacing containers that fail or can similarly be used for deploying updates. The cluster would recognize the state of the service does not match the version that is currently specified, and roll out the change. Many features such as progressive rollouts, automatic rollbacks, and user-defined health checks can also be applied.

So, it’s clear why users would want to use Kubernetes. Now to discuss a path to become proficient in using Kubernetes as a developer. Past understanding the very basics, the best way to start would be to deploy a simple application. By getting some hands-on knowledge it highlights the basic process and keeps you more interested than just reading documentation. The Kubernetes site contains an interactive tutorial which makes this even easier https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/. I think after following this tutorial it would make sense to also set up a local Kubernetes environment to allow for ease of tinkering. After creating a basic app learning to create a more complex application with multiple tiers would further cement understanding and show real world usecases.

Once you’re comfortable with using Kubernetes it’s time to learn to make your life easier when using Kubernetes. At this point the best bets would be learning to use Helm. Helms allows the use of templates to automate deployments and management via the use of templates. Operator is another tool to dive into for more complex management requirements. The differences between Helm and Operator is defined here https://cloudark.medium.com/kubernetes-operators-and-helm-it-takes-two-to-tango-3ff6dcf65619.

Hopefully this helps give a basic understanding of Kubernetes and how to get started on using it!

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *