After nine Kubernetes events and seven years working with the Kubernetes project as part of our own development, we’ve spent a good amount of time talking to the developer community. In every event we attend, we see a range of adoption stages and get questions about complexity and viability. Here are some of our top Kubernetes questions and answers.
Testing the Waters: Should I start using Kubernetes for my application?
Billy Thompson, Linode’s primary solutions engineer, attended the most recent KubeCon in Europe. Here’s what he heard from developers just starting to experiment with Kubernetes.
“A lot of people were still exploring Kubernetes and talking with other developers to learn more about the platform. In many cases, they were there to learn as much as they could and bring that information back to their teams. We could call these ‘fact-finding’ missions to help decide if Kubernetes would be viable for their projects in the near future.”
This wasn’t entirely surprising and it’s important to remember that K8s is still a relatively new technology. Despite key benefits like automated scaling and portability, major infrastructure and applications changes are costly and time consuming. If your legacy deployment is doing just fine, adopting a new platform is difficult to justify. Nevertheless, you should always be thinking about future-proofing for when scaling your environment in its current state inevitably becomes clunky, impractical, or impossible.
Designing and Refactoring: What does it take to start using Kubernetes?
Whether you’re preparing to refactor an existing application or starting from scratch, let’s talk about what it takes to get started. I asked Todd Becker, one of our engineers dedicated to Linode Kubernetes Engine (LKE), what his advice would be for someone approaching containerized workloads for the first time. I wanted to talk about how intimidating it can be to refactor monolithic applications to truly take advantage of Kubernetes or other cloud native tools.
“To fully utilize the beauty of Kubernetes, many applications would need to be adjusted. However, most applications can run on Kubernetes without much refactoring and still see significant benefits.”
So while it would be ideal, you do not need a full microservice architecture set to start using Kubernetes and containers. You can still take advantage of the portability, scalability, and environmental consistency with a monolithic application. However, these are generalizations. Each application will have its own unique requirements, but it’s important to understand that legacy applications are not necessarily excluded from containerization.
Ready to Go: What’s a good tool to help me get started?
If you are ready to start developing natively for Kubernetes, tooling and methodologies can help streamline the experience. Continuous Integration and Continuous Delivery (CI/CD) processes are cutting the time from dev to production.
Todd highly recommends Skaffold, “the Kubernetes developer’s best friend,” developed by Google in 2019. Here’s what Todd says:
“Skaffold is a great tool for developing on Kubernetes. This allows developers to host their dev environment in a Kubernetes cluster instead of locally on their machine. In addition to freeing up precious compute resources on a laptop or workstation, this provides a ton of working benefits. Skaffold mirrors your dev and production environments much closer than just writing a container by deploying the entire environment to a live Kubernetes cluster, and you can share your development workspace with other engineers to start collaborating more quickly. This can help bridge the gap between dev and ops to make everyone familiar with Kubernetes.”
The way Todd describes Skaffold makes it seem almost essential for Kubernetes development, but it’s not even three years old. The sheer benefits of an emerging technology can lead to a breakthrough in adoption, but this is another important aspect of the cycle. As a platform matures, little by little, day by day, more users give us more people working to make things easier. This can be a snowball effect, especially with open source technology that allows contributions from the wider community.
Pain Points and Providers: How can I improve my experience?
Certainly, not everyone is at an early or testing stage with Kubernetes. A significant number of projects are already using Kubernetes in production, so I went back to Billy Thompson to see what those developers are talking about.
“Speed. People want to spin up clusters, fast, and a lot of providers aren’t meeting these expectations right now. Standing up even a small cluster with ephemeral storage, in many cases, can take upwards of 20 minutes. This can be painfully long, especially for teachers or anyone doing a live demonstration.”
What about LKE?
“Your clusters are up and running on LKE with Terraform in 2-3 minutes.”
Management tools and compatibility are another big topic. Kubernetes can be very intimidating but there are some friendly and intuitive third party UIs.
“That was a very common question. People are using cloud-agnostic tools like Rancher and want the ability to use different providers. These are compatible with LKE and can be deployed via Linode API or Terraform.”
This is yet another stage of maturity for a new technology – becoming user friendly. Kubernetes released its own Dashboard in April 2020 to bring kubectl functionality to a web UI, but third party solutions have been around for a bit longer. Kontena Lens went GA in 2019 and Rancher hit 1.0 as far back as 2016 (about a year after Kubernetes 1.0). These tools are available and increasingly accessible. LKE installs the Kubernetes Dashboard by default, and can be accessed through the Kubernetes dashboard link found for each cluster in the Linode Cloud Manager.
We are approaching a tipping point. The benefits of Kubernetes are breaking through the initial challenges of adopting a new technology and we’re entering a self-sustaining cycle: More developers using K8s increases the amount of K8s projects, which increases the demand for K8s developers as those projects grow. This extends to service providers, who respond to the increased demand for more Kubernetes support by releasing and tuning new tools.
Today, running Kubernetes in production for your application is both practical and approachable. There’s no turning back, and we’re excited to help more developers get started.
Do you use Kubernetes and have something in mind that you’d like to see on LKE? Let us know.