Deploy a Cluster min read


Now that your various object definition files are created, you will use kubectl to do the actual object creation and cluster deployment.

  1. Install the RBAC resources.

    kubectl create -f  rbac.yaml
    
  2. Install the cluster resource definition.

    kubectl create -f memsql-cluster-crd.yaml
    
  3. Perform this step only if deploying on OpenShift Cluster.

    oc get namespace <the-namespace-you-want-to-deploy-in> \
    -o=jsonpath='{.metadata.annotations.openshift\.io/sa\.scc\.supplemental-groups}{"\n"}'
    

    This command will display output similar to 1096160000/10000. Note that the actual numbers may differ.

    Copy the number before the slash (/) and replace the value in --fs-group-id (which is currently 5555) with this number in the deployment.yaml file.

  4. Deploy the MemSQL Operator.

    kubectl create -f deployment.yaml
    
  5. Verify the deployment was successful by checking the status of the pods in your Kube cluster. You should see the MemSQL Operator with a status of Running.

    kubectl get pods
    
  6. Finally, create the cluster.

    kubectl create -f memsql-cluster.yaml
    
  7. After a couple minutes, run kubectl get pods again to verify the aggregator and leaf nodes all started and have a status of Running.

    kubectl get pods
    

    If you see no pods are in the Running state, then run kubectl get statefulsets to see if the statefulsets are running. If you need to debug an inoperable cluster, check the Operator logs by running kubectl logs deployment memsql-operator and then look at the various objects to see what is failing.

Connect to Your Cluster

The MemSQL Operator can create two services for use with clients and database users:

  • One service, svc-memsql-cluster-ddl, is the DDL endpoint. This endpoint is for creating tables.

  • The other service, svc-memsql-cluster-dml, is the DML endpoint. This endpoint is for read/write operations and is load-balanced among the available aggregators.

If the count field of the aggregatorSpec in the memsql-cluster.yaml file has a value of 1, then only the DDL endpoint is created.

If the count field of the aggregatorSpec in the memsql-cluster.yaml file has a value of 2 or greater, the DML endpoint is created as well.

Display the Service Endpoints

Run kubectl get services to display the DDL and DML endpoints. Include -n <name space> to view these services in a specific namespace.

image

Use these IP addresses from the CLUSTER-IP column to access these services.

  • The DDL port is accessible on the local host on 10.98.190.175
  • The DML port is accessible on the local host on 10.101.157.16

If the Operator cluster resides on a cloud service provider, use the IP addresses from the EXTERNAL-IP column instead, which can be reached externally.

Connect with the MySQL Client

To connect to the MemSQL/SingleStore DB cluster, run the following command from a computer that can access the Operator cluster. Use the admin database user with the password you defined in the memsql-cluster.yaml definition file.

mysql -u admin -h <hostname> -P <port> -p<password>

Connect with Studio

To connect to the MemSQL/SingleStore DB cluster, perform the following steps from a Linux computer that can access the Operator cluster.

  1. Install Studio using the Studio Installation Guide.

  2. Configure Studio to access the EXTERNAL-IP of the DDL endpoint provided above.

    Use the IP address of the svc-memsql-cluster-ddl from the CLUSTER-IP column.

    If the Operator cluster resides on a cloud service provider, use the IP address from the EXTERNAL-IP column instead, which can be reached externally.

    Use the admin database user with the password you defined in the memsql-cluster.yaml definition file.