Prerequisites: What Is Kubernetes?
In order to understand Kubernetes, you must first understand containers. A container is a self-contained miniature operating system that can run anywhere. It can be created within a matter of seconds according to a set of instructions that are hosted in a public or private repository.
Containers can run apps, and can in fact be designed specifically to the system-level needs of your app, defining at runtime which version of the JVM(Java Virtual Machine) you will be using (for example). Simply put, containers can ensure your local development environment looks exactly the same as your production environment.
Containers are small and lightweight. This means many more containers are needed to ship an application, compared to an application running on VMs. Sounds complicated?
Here is an image that shows a Kubernetes cluster:
Kubernetes can manage and schedule multiple containers on nodes at scale. It is a declarative system, meaning you tell the Kubernetes Control Plane (formerly “Kubernetes Master”) specific configurations and Kubernetes will automatically maintain the declared state. For more details, read “What is Kubernetes” on the Kubernetes website.
Kubernetes can run on many cloud service providers - for example AWS, GKE, or Microsoft Azure, but it is also possible to run Kubernetes on a stack of hard drives, or even, as in the second tutorial below, on a VM on your laptop.
Where should you start to learn Kubernetes?
There are quite a few tutorials on Kubernetes these days, many of them new in the last year.
Start with the Kubernetes Basics tutorial. It is an excellent way to get experience without any upfront installation on your computer.
The next step is the Hello Minikube tutorial. It repeats what you learned in the Kubernetes Basics tutorial on your own machine, and you will deploy a simple app with Kubernetes. There are instructions for both MacOS and Windows. Here is also probably where you will have your first challenges, which brings me to my next point.
Stay Focused and Take Notes
Be patient. Kubernetes is a new technology, and you will see a lot of new concepts. But that also makes it exciting and fun.
On the Kubernetes website, each of the components and tools you are using in the Hello Minikube tutorial have explanations and basic examples in the Concepts section - for example, here you will find a detailed description of Kubernetes Pods.
Look up any term you do not understand. I find it helpful to create a vocabulary list, so I can quickly look up something I forgot. This is also good for studying and sharing with others.
Now is also the time to take the edX course on Kubernetes. It provides a good follow-up to your studying so far.
If you get stuck or have questions, the Kubernetes website has a Troubleshooting section to help. I have included helpful community links below as well.
Join the Community
Another wonderful thing about Kubernetes is that it is open source. This means that there are people all over the world working at many different companies helping deploy applications of any kind on Kubernetes. If you encounter a challenge, someone else may have a similar question.
Because Kubernetes is an open source project, there is a large and helpful community out there that can help you with questions. Here are a few good ways to connect with other Kubernetes users and learn and share.
- Join a Kubernetes Meetup. There is a Meetup in most big tech centers - find one near you.
- Join the Mailing List for news from the community
- Join the community online via Slack and start exploring the #kubernetes-novice and #kubernetes-users channels. These are good places to ask for help, and generally folks will be helpful and responsive.
- Technical questions can also go on Stack Overflow (tag them with Kubernetes) and you can even have them addressed via live recording during Kubernetes Office Hours.
- Contribute to the upstream project. Beginner-friendly documentation is always a challenge, and, as I have personally experienced, new folks attempting to clarify things for themselves and others are always more than welcome. This is an excellent investment of your time in terms of studying and finding your way around the community.
Keep in mind that a lot of people working on the Kubernetes Project are very busy and in different time zones. It is possible you may have to ask for help multiple times, or be patient as you try to find the right person to help you. People do want to help you - so keep asking questions.
▶   The contents are protected by copyrights laws and the copyrights are owned by the creator.
▶    Re-use or reproduction as well as commercial use of the contents without prior consent is strictly prohibited.
In 2016, Guinevere Saenger transitioned from being a full-time professional pianist to a career in tech. To do so, she obtained a spot at the highly competitive Ada Developers Academy in Seattle, a year-long, tuition-free, bootcamp-style software development training program for women and nonbinary people making a mid-life career switch into tech. As part of her training, Guinevere interned at Samsung SDS on the Cloud Native Computing Team, where, after graduating in July 2017, she accepted a full-time software engineer position working on Kubernetes deployment tools such as Kraken. She has been very active in the Kubernetes open-source community and has helped write the new Kubernetes Contributor Guide as well as spoken at KubeCon on the topic of learning Kubernetes. She is @guincodes on Twitter and blogs at guincodes.blogspot.com.