Kubernetes has a large and innovative community actively working on projects resulting in a new Kubernetes version coming out every few months. Mid to large enterprises need to stay current with these new innovations and that includes regular Kubernetes upgrades with minimal or zero disruption to the organization.
Reasons for Kubernetes Upgrades
There are two main reasons to upgrade Kubernetes:
Access to Latest Features – To get the newest feature sets, you need to stay current with the latest Kubernetes releases. These updates often improve functionality, provide stability and help to maximize your team’s productivity.
Security Patching – As Kubernetes continues to evolve, the security aspects of the platform are going to move forward rapidly. In order to have your system run safely, it is critical to stay current to protect your clusters. This point is particularly of concern for enterprises to rectify security holes and software vulnerabilities.
How to upgrade Kubernetes?
When thinking about upgrading Kubernetes, the question turns to “how?” When doing it yourself, there are key points to keep in mind:
- How many operational bodies are you going to have to throw at the problem?
- What’s your tolerance for manual labor versus automation?
- How do you ensure that you have data plane high availability?
These questions identify several challenges for the DIY Kubernetes upgrade process:
Challenge #1: Operational Complexity
Operational complexity is relatively high with Kubernetes. You have to assign an individual to manually drain your nodes, upgrade those nodes, and put them back in the cluster. Then you have to repeat that over and over again, until your cluster is upgraded. This is a time-consuming process that requires developer expertise that may or may not exist in-house to figure out the nuances specific to your enterprise.
Challenge #2: Script Writing/Rewrites
Custom scripts must be written for automating the upgrades for production clusters since nothing exists out there today. This means that your team will spend their time automating this time-consuming task or spend their time doing it manually, upgrading nodes one at a time. Either way, it will pull resources from other more important developer work.
Challenge #3: Data Plane Downtime
For cloud-based enterprises, it is critical that the network carrying user traffic be up and running with consistent real-time access for users. But how do you ensure that your services stay up and are highly available? You can do that by leveraging some of the features of Kubernetes ― making sure you are spread across multiple nodes ― so that high availability is baked in. Then you can upgrade your nodes one by one.
Challenge #4: Loss of Productivity
Committing personnel to the manual process of DIY Kubernetes upgrades means they are not working on more mission-critical projects for your enterprise. This consumption of resource time on non-sales generating work means higher costs and longer time to market for your product or services.
Managed Kubernetes simplifies upgrades
The obvious alternative is going with a managed service for Kubernetes. Most managed services provide a way to upgrade painlessly. This protects your organization from environmental downtime, avoids throwing operational bodies at it, and typically automates the upgrade process for you.
When you ask, “when and how do I upgrade”, the answer should be simple: Identify a managed service that can take away that operational complexity and make it as easy as possible for you to upgrade.
Upgrading Kubernetes is complex. When you choose to go the DIY route, you have to dedicate a lot of people to solving the problem and also be concerned about high availability. Going cloud native should not be this complex. If you choose a managed service like Platfom9, the upgrade issue can be solved with the push of a button, allowing you to rest easy and avoid extra overhead.
Upgrades with Platform9 Managed Kubernetes
Platform9’s enhanced automation functionality allows you to upgrade your clusters with the click of a button. Our managed service will automatically drain nodes one at a time, upgrade the nodes and put them back in the cluster, ensuring that you have that high availability across the backend without having to devote additional resources to the problem.
Platform9 Managed Kubernetes is SaaS-managed, infrastructure-agnostic, and works across public clouds and on-premises server infrastructure. It creates highly available, multi-master, multi-etcd Kubernetes clusters that can span across availability zones in your private or public cloud environment. Our SaaS managed delivery enables easy orchestration of Kubernetes upgrades, in a controlled fashion that preserves multi-master high availability, with minimal impact on your organization’s data plane activities.
We can help you move from a DIY Kubernetes system to the fully orchestrated Platform9 Managed Kubernetes environment. To get started with Platform9, deploy a free sandbox, register for a free 15-day trial or contact us to schedule a free consultation.
Watch Jeremy Brooks, Director of Customer Success, on “Kubernetes Upgrades with Low/No Downtime.”
- [Video] KubeVirt – Beyond Containers: Coming full circle back to VMs! - September 12, 2019
- The unforgiving cycle of cloud infrastructure costs (and the CAP theorem that drives them) - April 23, 2019
- Transitioning from managing VMs to orchestrating containers - November 28, 2018