Kubernetes simplifies container management, including the deployment, discoverability, scale, high availability, and serviceability of containerized applications. We’ve learned from customer conversations and our own experience, that although Kubernetes is powerful and offers the right building blocks, enterprises often struggle with its deployment. Challenges hindering Kubernetes adoption in the production environment include:
- Complexity of installation and configuration. Kubernetes can be relatively difficult to set up and use; there is no “one size fits all” recipe. A Kubernetes deployment is a large and complex combination of services, components, add-ons, and plugins, all of which need to be configured to work without glitches before Kubernetes is production ready.
- Keeping pace with Kubernetes updates. Kubernetes and its open source components continue to evolve rapidly. Enterprises struggle to apply new bug fixes and updates on a timely basis, while maintaining up-time for critical applications. Missing just one or two updates or patches can create all sorts of additional problems in the production environment.
- Managing clusters across multiple clouds and data centers. Enterprises typically want to deploy Kubernetes across more than one infrastructure platform – often including public cloud, private cloud, or hybrid on-premises plus cloud. Managing Kubernetes in this environment can be time consuming, expensive, and require specific developer expertise which many enterprises do not have in-house.
- Monitoring and troubleshooting. As with any complex system, things can and do break. The enterprise’s IT team needs to be alerted to problems 24×7, so that the root causes can be found and remediated.
These challenges can be exacerbated as the scale of deployment increases. That’s why it’s important for mid- to large-size enterprises to keep in mind our top five considerations before planning for deployment of Kubernetes at scale:
#1 Managing downtime during upgrades and updates
As an open sourced framework, Kubernetes has a vast and innovative community – including Google, Red Hat, Canonical and Microsoft – and a new Kubernetes version comes out every three months or so. Mid to large enterprises need to have a solid game plan in place to keep up with this pace of innovation, including quarterly upgrades with minimal or zero downtime.
#2 Enterprise readiness
Enterprise readiness with Kubernetes includes a collection of features or attributes for everything from monitoring workloads, log collection, SSL termination, and certificate management, to network isolation. These are the features any enterprise would need to successfully run production Kubernetes environments at scale.
#3 Hybrid or multi-cloud support
The typical enterprise organization likely does not want to apply Kubernetes on just a single endpoint, but on a diverse set of endpoints, including some private infrastructure and at least one popular public cloud provider. The Kubernetes solution, whether it’s deployed by the enterprise or by partnering with a vendor, must have the same consistent experience and the same SLA regardless of whether Kubernetes is deployed on-premise or in a public cloud.
The fourth consideration must be around multi-tenancy. Enterprises ideally want to support Kubernetes environment across a large scale of users, across development, staging and production environments. They should have the ability for users to sign in through some kind of single sign-on. Enterprises should also have support for Kubernetes native RBAC and some kind of multi-tenancy that separates users into different teams.
Multi-tenancy is very critical, and what goes along with it are network isolation policies so that users can isolate their test workloads from their production workloads.
#5 Developer Productivity
Once the enterprise has the Kubernetes platform ready for developers to consume at-scale, the end users and developers must have some kind of self-service portal so they can sign in to the environment regardless of their sign-in location. In addition, to enhance developer productivity, there should be some kind of application catalog for easy deployment of the Kubernetes application. There also should be some sort of CI-CD integration, and a good registry management solution.
Kubernetes-as-a-Service from Platform9
If you are a developer looking for a solution to get your applications deployed quickly as possible using Kubernetes – with features such as high availability, single sign-on, and federation – you should consider Kubernetes-as-a-Service offerings, including Platform9. Our solution allows developers to focus on deploying containerized applications with lower overhead costs to upgrade or maintain the cluster.
To get started with Platform9, you can deploy a free sandbox with Kubernetes installed. The sandbox includes a guided walkthrough for SaaS-managed Kubernetes, which allows you to get your environment up and running in just minutes. You can also contact us to schedule a free consultation or to register for a free 15-day trial.
VIDEO: Hear from Madhura Maskasky, Co-founder & VP of Product, on “Top 5 Considerations for Deployment of Kubernetes at Scale”