Part 1: Why this series, Kubernetes Starter
Written August 23rd, 2024 by Nathan Frank
Photo source by BoliviaInteligente on Unsplash
Recap
Want to jump past Why this Series? Skip to Why Kubernetes? in the Kubernetes Starter series.
Why another series on Kubernetes?
I've known people that talk about how their organizations are not leveraging more modern practices of software development. There's not a lot of good "all-in-one-series" to walk people through the necessary parts to get up and running.
Many are either too basic: they scratch just the surface, or are very tailored and specific which don't answer what ifs and how do I use this to solve an actual problem.
- Simple yet in depth enough to talk about things that matter
- How to do things with examples
- Why certain things are done
- Many come from a place of showing how awesome someone is rather than on the learner trying to get something out of it
With Kubernetes (K8s) turning 10 years old this year, there's people that are not yet embracing it because it can seem too daunting.
A brief disclaimer
Nothing here is secret sauce, there's no trade secrets here, no code brought from a previous client or company. It's just some sample applications and sample K8s declarative files to demonstrate one way this could be handled.
There's no sponsorship here, no affiliate links.
This article series is not enhanced by GenAI.
Why not just use GenAI?
It's a complicated topic that can be hard to start and without a place to start it's hard to even know what to ask Generative AI what to do.
When it comes to Generative AI, lean into it, support it, embrace it. GenAI is a force multiplier taking what knowledge you have and enhancing it with speed. As a developer one still needs to know the best practices in coding and to evaluate what it provided is correct.
With K8s being around for 10 years, there's plenty of material for GenAI to find, but one needs to understand the core concepts to gain the efficiency Gen AI provides.
Why not some of the other courses out there?
Maybe it's exactly what one needs. I've taken several courses and I recommend them.
(I don't have any affiliate links with the below course, I took the course, it was helpful, you may also find it helpful)
I've taken both of these courses and recommend them both:
- Docker and Kubernetes: The Complete Guide a 21 hour course from Udemy instructor Stephen Grider, 558K students with a 4.6 rating
- Docker & Kubernetes: The Practical Guide 2024 Edition, A 23.5 hour course from Academind professor Maximillian Schwarzmüller, 189K students with 4.8 rating
Both of these professors are top notch and I wouldn't hesitate to purchase and take any new courses from either of them, 10 of 10 would recommend.
(Note: Sign up for Udemy and watch out for course coupons and sales if the cost of these courses is too high).
This is not meant to replace these amazing and highly recommended classes. If you have 24ish hours, go take one of those courses instead.
What makes you the right person for this?
- I've got 20 years of experience in consulting.
- I've been engineering solutions for different clients in different verticals and for wildly different problem spaces.
- I've helped organizations through Digital Business Transformation to help them stay relevant amongst startups that are digital first.
- I've helped organizations develop and roll out training programs and support them through change management.
Why not cloud first?
Different organizations have different needs. The cloud can be super great. It does have cost associated with it that can prevent someone from dabbling. I've also had clients that needed to be air gapped for compliance reasons. If it can work air gapped, it can work with more cloud access.
Nail the fundamentals first.
This provides a foundation to then look for more resources on. Maybe you dive deeper into K8s. Maybe you can leverage GenAI more.
No cost barrier to entry.
This all works locally with no credit card. Even with trial memberships, those free cloud credits disappear and at some point turn into dollars that need to be paid.
Deploy it to a cloud provider.
Deploy them to AWS/GCP/Azure or any other cloud provider, if that's what you desire. Understanding K8s applies across all cloud providers
If you are building cloud native with serverless cloud functions like lambdas then this series may not be for you. That can be a very different paradigm of modern application development.
What to expect
Each topic will have a conceptual section and then hands in the code.
Code will be provided for review, but the hands on sections provide tactical representations.
We'll then touch upon resilience, performance, and security in each topic:
- This current overview of the series
- Understand what Kubernetes solves
- Start from a locally running application
- Containerize the local application
- Deploy it to a locally running K8s cluster
- Set it up with externally managed secrets
- Deploy it to multiple environments with Helm
- Full setup
- Cleanup after the project
Each of the above topics have hundreds of posts written about them. This series attempts to summarize deeper than a single post on one tactical aspect. Leverage them both! In some places we provide links to other articles for additional information.
There's also a ton of videos with great content. Links included focus on text references/articles over videos, but use videos too. Techno Tim, NetworkChuck, and Christian Lempa are just a few recommended channels to keep an eye on.
Hands on
What you'll need installed to get running
Rancher Desktop
We're currently using version 1.15.0 with Kubernetes version 1.30.3
recommended installation through nvm Node 20
We're currently using 20.16, but any version greater than 20 should work. Version 20 includes enhancements for .env files for environmental secrets
The The project repository cloned
git clone TBD
Wrap up
We've got an overview of what this series is and why it's worth your time.
Moving along
Continue with the second article of the series: Why Kubernetes?
This series is also available with the accompanying codebase.
Stuck with setup? Refer to full project setup instructions.
Done with the series? Cleanup the project workspace.