Kubernetes, the open source orchestration platform for automating the deployment and management of containerized workloads and services, continues to gain popularity. Maintained by a worldwide community of contributors, the platform’s potential benefits include increased resource efficiency, improved scalability, and high availability.
“In the past few years, Kubernetes and related cloud-native technologies have become the reference point for enterprise IT, even if the majority of workloads may continue to run on virtual machines [VMs] for some time to come,” says Lee Sustar, principal analyst at Forrester Research.
“The reason for this is that Kubernetes allows for the orchestration of container-based applications at scale, while making much more efficient use of infrastructure resources,” Sustar says. “Emerging technologies such as KubeVirt, which allows VMs to run on Kubernetes, are moving into production,” and customer concerns over possible VMware price increases are prompting them to explore alternatives, he says.
As is true with anything technology-related, there are better and worse ways to deploy and use Kubernetes. How can organizations best succeed with the open source orchestration platform? We asked several experts to share what they’ve learned.
8 keys to succeeding with Kubernetes
- Take it slow
- Get involved in open source projects
- Engage with other users
- Invest in training and collaboration
- Use public cloud offerings
- Embrace infrastructure as code
- Establish observability
- Leverage generative AI
Take it slow
Organizations often speed ahead with broad implementations of a technology, but moving forward without a well-conceived strategy and reasons for adoption can lead to failure.
“Don’t rush it. Start small, iterate, and give people room to learn,” says Bob Killen, senior technical program manager at the Cloud Native Computing Foundation (CNSF), an organization that works to make cloud-native computing ubiquitous and which holds the trademark for Kubernetes.
“Many organizations rush to migrate to Kubernetes or adopt cloud-native tooling and practices, but underestimate the time, experimentation, and upskilling required to do it well,” Killen says.
It’s better to take a gradual approach and work with a test application or a non-critical application, “where you can work through the aspects of the application and cluster lifecycle, along with day two operational tasks,” he says.
Incorporating testing, experimentation, and learning stages allows organizations to evaluate the cloud-native computing landscape and find optimal tools and workflows to meet their needs. “No one wants to find themselves in the position of having to, say, swap their container network provider on a production cluster with a live service,” says Killen.
Get involved in open source projects
Being involved in open source Kubernetes projects can help organizations be more in tune with any upcoming issues that might impact their own projects.
“When you have open source in critical parts of your stack like Kubernetes or other cloud-native projects, you can directly de-risk your usage of those projects by getting involved in the upstream project,” Killen says.
“This doesn’t have to be a significant commitment,” Killen says. “You don’t have to commit code to become a trusted contributor. Plenty of non-code opportunities exist. The important part is being there and building that trust. This intangible value should not be underestimated and can be a great asset, both de-risking your organization’s usage and getting your issues prioritized.”
Having a presence will clue you into deprecations and changes that could impact your organization’s environment, and you’ll be informed before the general public, Killen says. Indeed, some issues that cause stirs in the market are discussed internally for more than a year, he says.
Engage with other users
Along the same lines as getting involved in projects, organizations should encourage users to compare notes with others who have experience with Kubernetes.
“Related to giving your team the time to learn, encouraging them to engage with other users can be immensely beneficial,” Killen says. “Often a conversation or two with other users who have deployed something similar can quickly help you get past the choice paralysis or gotchas that come with building out a full cloud-native stack.”
The CNCF coordinates an end-user community that is designed to help organizations communicate with each other about cloud-native tools. For example, the organization holds Kubernetes Community Days, events that gather adopters and technologists from open source and cloud-native communities for education, collaboration, and networking.
“Don’t neglect these opportunities to connect with others,” Killen says. “Chances are, you’ll find a person who’s done something similar and is more than happy to provide tips.”
Invest in training and collaboration
Most organizations have a skill set that focuses on technologies that predate Kubernetes, says Larry Carvahlo, principal consultant at IT services and consulting firm Robust Cloud.
“With that in mind, the biggest challenge is getting the team to understand the fundamentals of Kubernetes, including containers, pods, services, and deployments,” Carvahlo says. The successful adoption of Kubernetes demands a new organizational culture that includes training and collaboration.
“Teams need to embrace devops principles, breaking down silos between development and operations to enhance collaboration and shared responsibility,” Carvahlo says. “Cross-training, workshops, and hands-on labs are required to build skills across development, operations, and security teams.”
Open communication helps teams adapt to the rapid changes and complexities inherent in Kubernetes environments. As an example, organizations can build teams that participate in regular “lunch and learn” sessions or Kubernetes study groups. “Feedback loops foster a supportive environment where teams can learn from failures and continuously improve their processes,” Carvahlo says.
Use public cloud offerings
“Those getting going with Kubernetes today can benefit from best practices of early adopters as well as innovation from public cloud and multi-cloud container platform Kubernetes offerings,” Sustar says.
The managed Kubernetes control plan services offered by public cloud providers can ease the burdens of upgrades, Sustar says. “And the big public cloud vendors increasingly offer automation on top of that control plane as well,” he says.
For example, Amazon Web Services (AWS) offers Elastic Kubernetes Service, a managed service to run the system in the AWS cloud and on-premises data centers. Microsoft offers Azure Kubernetes Service, a managed service that organizations can use to deploy and manage containerized applications. And Google Cloud offers Google Kubernetes Engine, a managed service that organizations can use to deploy and operate containerized applications at scale using Google’s infrastructure.
Enterprises need to decide early on whether their platform teams should focus on operating managed and automated services from their cloud providers or whether they need to build out their own Kubernetes stack to achieve their goals, Sustar says.
“In other words, organizations should keep Kubernetes as simple as they can, but confront complexity where they must,” Sustar says. “Common challenges involve resilience and integrations. And whether the Kubernetes stack is pre-built or homegrown, platform teams must optimize it for developers.”
Embrace infrastructure as code
IaC, or infrastructure as code, is the ability to provision and support computing infrastructures using code rather than manual processes and settings. Running business applications requires infrastructure components such as operating systems, databases, and storage systems that IT organizations need to set up and maintain. Using IaC, organizations can automate infrastructure management.
“Kubernetes environments are complex and often involve multiple clusters, nodes, and configurations, Carvahlo says. “The complexity is best handled when infrastructure is provisioned and managed using automation rather than manual processes,” he adds.
Tools such as those from Terraform, Ansible, and Helm can enable organizations to define their infrastructure declaratively. These tools allow teams to replicate environments quickly, roll back changes, and scale applications efficiently, Carvahlo says. “Development and operations teams can collaborate, as IaC is version-controlled and can be reviewed like application code,” he says.
Establish observability
Kubernetes is not a set-it-and-forget-it solution. It needs to be monitored to ensure that goals are being met. This is where observability tools come in. Kubernetes observability gives teams the ability to monitor and analyze the performance and behavior of Kubernetes clusters in a cloud-native environment.
“Proper monitoring and logging make troubleshooting Kubernetes issues easy, which can otherwise be cumbersome,” Carvahlo says. “Tools that collect metrics, logs, and traces from Kubernetes clusters, applications, and infrastructure help identify bottlenecks and detect failures early.”
For example, organizations can leverage an open source monitoring tool such as Prometheus, which is supported by Grafana, for metrics collection and visualization Carvahlo says. “Many use centralized logging solutions like Elasticsearch and Kibana while adopting distributed tracing with Jaeger,” he says. “These insights help IT teams save time and improve efficiency.”
Leverage generative AI
Observability platforms increasingly are being coupled with generative AI technologies for more comprehensive operational monitoring services, says Charlotte Dunlap, research director at data analytics and consulting company Global Data.
AI and genAI “will play an important role in Kubernetes rollouts,” Dunlap says. “Initially, genAI will become available to IT ops and developers through intelligent automation and security platforms,” such as Microsoft Power Automate and Red Hat Ansible Lightspeed, she says.
In addition, cybersecurity providers have indicated they will leverage genAI as a means for enhancing cloud security posture management and attack path analysis, Dunlap says.