Customers of Google Container Engine now have the ability to set up container clusters with nodes of varying configurations within them.
Making the support for heterogeneous clusters possible is a new feature in Container Engine called node pools, which Google moved from testing into general availability this week.
In a blog post, Fabio Yeon, software engineer at Google's Cloud Platform group, described a node pool as a collection of machines with the same features and configuration within a cluster. The feature allows users to set up container clusters with multiple pools each one running machines with different configurations.
"Now instead of a uniform cluster where all the nodes are the same, you can have multiple node pools that better suit your needs," Yeon said. For example, an organization that wants more CPU performance from an existing cluster can simply add a node pool with bigger machines to it, instead of having to set up a new cluster entirely to achieve the same goal.
Node pools offer other benefits as well, according to Yeon. For instance, they give administrators a way to exercise more control when upgrading nodes in a cluster to the latest version of Kubernetes, Google's cluster management software. When a new version of Kubernetes becomes available, administrators can now simply set up a new node in an existing cluster and have it automatically updated to the latest version of Kubernetes by the cluster master software.
Node pools automatically support multizone cluster configurations. Enterprise customers of Google Container Engine often want the ability to run container nodes in different zones as a precaution against outages in specific zones. Node pools are designed such that when an administrator creates additional node pools in one zone or region, the same node pools are created in each of the other zones as well, Yeon said.
Comments on a discussion forum on containers at Google show that some enterprises have been waiting for support for heterogeneous clusters for a while. "In production we run a mix of server types with fairly different processing, I/O, memory requirements," one commenter had noted back in December 2014. "Ideally, it would be possible to match the node shape to the workload," with Google's container engine technology as well, the commenter had noted.
"It is easy to imagine situations where it would be beneficial to have different types of machines available to applications with different demands," another blogger on the Unacast Labs Tech Blog wrote earlier this week. As one example, he pointed to a situation where some apps in a cluster might require a much higher memory than others.
"Earlier you were stuck with the initial machine type, but with node-pools, you are also able to migrate your cluster from one machine type to another," the blogger said. "Node-pools are a great new feature on [Google Container Engine] and something that makes Kubernetes much more flexible and also let you run different kinds of workload with different requirements."