In this tutorial, you will deploy a MemSQL cluster in a Kubernetes environment using a Kubernetes operator. This operator allows you to easily resize clusters, replace failing nodes, and upgrade to newer versions of MemSQL seamlessly. And like other Kubernetes operators, you can use it to deploy clusters easily in many different environments and platforms, both on-premises and in the cloud.
The MemSQL operator is also certified to run on the various Red Hat OpenShift platforms, so it will work natively with the OpenShift UI portal and other OpenShift management tools.
A four-node cluster is the minimal recommended cluster size for showcasing MemSQL as a distributed, highly-available database; however, you can use the procedures in this tutorial to scale out to additional nodes for increased performance over large data sets or to handle higher concurrency loads. To learn more about MemSQL’s design principles and topology concepts, see Distributed Architecture.
There are no licensing costs for using up to four license units for the leaf nodes in your cluster. If you need a larger cluster with more/larger leaf nodes, please create an Enterprise License trial key.
This tutorial assumes you have a basic knowledge of containers and Kubernetes concepts such as Objects, Pods, PersistentVolumes, and so on. In addition, some of the use cases for Operators are mentioned in this tutorial, but you should read the CoreOS documentation for a more in-depth explanation of what they are and why they are useful.
Follow these instructions to install
kubectl on the workstation or machine used to control and manage your cluster.
Host machine requirements
Cluster deployment should be on host machines that satisfy our hardware and software requirements. Specifically, the following requirements should be met on all host machines:
Physical or virtual machines with the following:
- At least four CPU cores and eight GB of RAM per machine (8 vCPU and 32 GB of RAM is recommended for leaf nodes to align with license unit calculations)
- Running Linux kernel 2.6.32 or later
Each MemSQL Pod needs to be able to communicate other MemSQL Pods in the same cluster over port 3306
In addition to these requirements, it is highly recommended that you follow our host machine configuration recommendations for optimal cluster performance.