Now that your various object definition files are created, you will use kubectl
to do the actual object creation and cluster deployment.
-
Install the RBAC resources.
kubectl create -f rbac.yaml
-
Install the cluster resource definition.
kubectl create -f memsql-cluster-crd.yaml
-
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 currently5555
) with this number in the deployment.yaml file. -
Deploy the Operator.
kubectl create -f deployment.yaml
-
Verify the deployment was successful by checking the status of the pods in your Kube cluster. You should see the Operator with a status of
Running
.kubectl get pods
-
Finally, create the cluster.
kubectl create -f memsql-cluster.yaml
-
After a couple minutes, run
kubectl get pods
again to verify the aggregator and leaf nodes all started and have a status ofRunning
.kubectl get pods
If you see no pods are in the
Running
state, then runkubectl get statefulsets
to see if the statefulsets are running. If you need to debug an inoperable cluster, check the Operator logs by runningkubectl logs deployment memsql-operator
and then look at the various objects to see what is failing.
Connect to Your Cluster
The 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.
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>