Welcome back! I hope that after going through the information from the first blog post in this series, you all are Kubernetes experts. If not, don’t worry, we will continue the journey together. In this part of the series, I want you to expand your Kubernetes worldview by exploring more of the ecosystem. We will go through some of the upstream projects that we as Kubernetes architects and engineers use to set up Kubernetes production systems for customers. This is not an all-encompassing list, but contains a few of the key ones to get you started.
I’d first like to point you to more educational materials/resources to help you strengthen your Kubernetes knowledge.
Here are some blogs that cover a wide range of topics, from what a service in Kubernetes is to how to use CNI with a kind cluster.
Recently, I have been l increasing my grasp of Kubernetes by listening to various podcasts. After jumping on the podcast bandwagon, I now listen to podcasts on just about every topic, so why not Kubernetes? The following podcasts allow you to hear insights from experts in the Kubernetes community.
- Podlets aims to elucidate and demystify cloud-native technologies to help listeners confidently embrace them.
- K-files takes on a different topic each week in the Kubernetes community specifically and the IT industry more broadly, from kernel headers to magic quadrants to startup pitch decks.
- Kubernetes Podcast, from Google, is a weekly news and interview show featuring insights from the Kubernetes community.
Online courses and resources
Preferably I like to digest my information via video and hands-on experience. The resources below are focused on providing you with free content that are quick and easy to consume while providing structure to follow along a track:
- KubeAcademy from VMware is a free, product-agnostic Kubernetes and cloud-native technology education platform. KubeAcademy courses are comprised of a series of video lessons—each five to eight minutes long—that dive into topics for all skill levels. The courses are created and delivered by subject matter experts.
- TGI Kubernetes (TGIK) is an excellent series on YouTube that dives deeply into many Kubernetes topics. It’s hosted by experts in the Kubernetes community, and each week they tackle a different topic.
- TGIK: Grokking Kubernetes is a shorter list of videos from TGIK that focus on Kubernetes constructs.
- Docker Desktop is a simple way to get Docker and Kubernetes deployed locally.
Some essential tools
Now that you have more information to boost your Kubernetes skills, let’s get to the projects that you will use to get clusters up and running as a Kubernetes architect or engineer.
There are many approaches you can take to set up Kubernetes, and they vary based on what you would like to accomplish with your cluster. However, if your goal is to deploy a production-grade cluster, then Kubeadm is the place to start. Kubeadm is a Kubernetes SIG-supported project that can be installed on laptops, servers, cloud providers, VMs and more to help you bootstrap a Kubernetes cluster to meet best practices. Kubeadm does not provision the underlying compute infrastructure or resources for the cluster, nor does it install add-ons like monitoring solutions. That said, Kubeadm is a user-friendly way to get a secure Kubernetes cluster running.
Now that you have a Kubernetes cluster running on the environment of your choice, you will probably want to make sure the install meets certain standards. This is where Sonobouy comes in. Sonobuoy is an open-source project that runs conformance tests to ensure your Kubernetes cluster adheres to the official specifications. That way you know all your clusters are configured correctly and in the same way.
Once you’ve set up this perfectly conformed Kubernetes cluster, you will want to ensure it fits with your business continuity plan, and that requires having a backup and migration solution. The open-source tool Velero is an excellent option. Originally known as Heptio Ark, Velero allows you to safely back up, recover and migrate clusters and persistent volumes both on-premise and in the cloud. It does so by using the Kubernetes API discovery to obtain the cluster state and restore them instead of directly accessing the etcd server and performing a more traditional backup.
Networking is a requirement for any IT solution/setup, and Kubernetes is no different. I won’t go into all the networking details; the one thing you need to keep in mind is that Kubernetes has a basic networking topology. This topology is limited to the communication between Kubernetes resources and the cluster, and between Kubernetes clusters and external resources, which means you will need additional networking capabilities. There are a number of open-source and proprietary networking solutions available, like Weave Net, NSX-T and Flannel, each of which has its pros and cons. You will simply have to find the networking tool that can best accomplish your goals. A very common networking tool is Calico, which is an open-source solution that supports multiple Kubernetes platforms. It is a highly scalable solution and provides many features, such as intent-based network security and integration with Istio. Calico is also widely used and has a large support community, making it a great place to start advancing your Kubernetes networking knowledge.
Gathering metrics from your environments is critical to maintaining and improving them. With Kubernetes, you have quite a few monitoring options, including Prometheus. My colleagues and I have many customers that are using Prometheus in their production environments, with great results. It provides monitoring (based on your configuration) for hardware, OS, containers and microservices, giving you a comprehensive view of your environment. It also has alerting capabilities that integrate with common tools like Pagerduty. And it has default data visualization capabilities that allow you to view or export your metrics to external sources for further analysis.
If you would like the option of creating a more robust dashboard of these metrics, another excellent open-source tool is Grafana. It will allow your organization to create dynamic dashboards, alerting rules and visualizing logs. Grafana not only integrates with Prometheus, but with more than 30 data sources. So, you can use it to monitor multiple sources concurrently, making it an especially flexible and powerful tool.
Kubernetes comes with a built-in dashboard UI, which gives users an overview of their Kubernetes resources and allows them to edit them or create new ones. However, the dashboard may not offer enough information for your developers’ needs. With Octant, an open-source tool that provides added security by running locally on your machine, developers get a view that simplifies the complexity of Kubernetes and focuses on items that are important to them and their applications. Developers can easily switch between different clusters, view the health of all their workloads in a namespace and execute commands against containers.
We’ve just scratched the surface of the cloud-native ecosystem, but these tools will help broaden and deepen your knowledge of Kubernetes. If you can master them, you’re more than halfway to becoming a Kubernaut! Stay tuned for more blogs on the cloud-native ecosystem where we will expand and add to this list and, in the process, put you on the path to becoming a Kubernetes expert.
About the AuthorMore Content by Rachel Leekin