Many container adopters already know they need Kubernetes, but they still must decide between upstream, open source...
Kubernetes and a vendor's distribution.
The rise of Kubernetes stems from an overall IT movement toward hybrid cloud platforms and containers to deploy independent, packaged pieces of code. Modern IT practices aim for agility, supporting faster changes in business strategy than previous IT infrastructure designs. There is a strong corresponding need to manage how containers are packaged, implemented, monitored and managed. Full orchestration ensures high availability (HA), security, comprehensive performance monitoring, reporting and active feedback loops. Kubernetes brought orchestration without vendor lock-in to the container space and successfully went up against the biggest player -- Docker -- as well as many narrowly focused systems.
Initially a technically complex and reasonably basic tool set, Kubernetes has grown to become a well-respected and widely used container orchestration and management tool across technology platforms. There's a growing list of Kubernetes distributions available, in part due to creator Google's decisions to partner with the independent Linux Foundation to create the Cloud Native Computing Foundation (CNCF) and put the Kubernetes project under its control.
Some of the popular proprietary Kubernetes distributions are:
- Tectonic by CoreOS;
- Canonical Juju;
- IBM Cloud Container Service/Cloud Private;
- Mirantis Cloud Platform;
- Pivotal Container Service (PKS);
- Red Hat OpenShift;
- Oracle Container Services for use with Kubernetes; and
- Rancher Kubernetes Engine.
In addition, StackPointCloud and Platform9 offer tools that overlay and manage a Kubernetes implementation to make overall usage easier and more effective.
In the public cloud, AWS, Microsoft Azure and Google Cloud Platform each provide built-in Kubernetes capabilities, as do many other platforms.
Benefits of commercial Kubernetes distributions
Why pay for a commercial offering, rather than the upstream open source Kubernetes?
Some distributions can integrate with existing tools into the container environment to a far greater extent than open source Kubernetes could achieve on the same platform. Kubernetes distributions from vendors are also fully supported, which means the enterprise pays to avoid finger-pointing and head-scratching when a problem occurs. Indeed, commercial support matters when it comes to such tools. Although open source Kubernetes has excellent community support, there remains the perennial question of whether the fix, extension or whatever other answer picked up from peers can be trusted. Community-sourced code could be low-quality or even a Trojan horse.
Commercially supported Kubernetes distributions offer additional benefits. Distribution vendors add functionality around upstream Kubernetes to provide enhanced enterprise support. For example, Canonical adds enterprise security through using Transport Layer Security as a communications transport layer between nodes and uses the Easy RSA public key infrastructure utility to manage certificates across the platform. Pivotal PKS brings HA and automated health checks to the basic Kubernetes package. CoreOS Tectonic enhances Kubernetes' hybrid and multi-cloud capabilities, along with additional security and monitoring capabilities.
With CNCF signing up so many major vendors -- AWS, Docker, IBM, Mesosphere, Microsoft and Pivotal are just a few of the platinum tier supporters -- it is obvious that Kubernetes is the horse to back. But, to use another equine metaphor, the right Kubernetes distribution choice for an enterprise IT shop comes down to horses for courses. Open source Kubernetes can work in an organization that has high levels of technical capabilities and is confident using its own skills or vetting community solutions to deal with. Open source Kubernetes users have access to the newest -- and, therefore, most unstable -- features. There are also many working groups where users can contribute to Kubernetes' development. A commercially supported version of Kubernetes will suit an organization with either more basic technical capabilities or one with a highly defined platform from a specific vendor.