-
Language:
English
-
Language:
English
Chapter 2. Spinning Up Data Grid Clusters
You create Data Grid clusters from custom resource definitions.
Prerequisites
Install the Data Grid Operator from the OperatorHub.
2.1. Creating Minimal Data Grid Clusters
Quickly spin up a Data Grid cluster with two nodes and let the Data Grid Operator generate credentials. You can retrieve the credentials from the pods after you create the Data Grid cluster. However, because Data Grid clusters require authentication, you cannot connect to the pods without the credentials.
Procedure
Create a custom resource
yaml
for the minimal cluster.$ cat > cr_minimal.yaml<<EOF apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: example-rhdg spec: replicas: 2 EOF
-
replicas
specifies the number of nodes in the Data Grid cluster.
-
Apply the custom resource
yaml
.$ oc apply -f cr_minimal.yaml
Verify that the Data Grid Operator creates the pods.
$ oc get pods -w NAME READY STATUS RESTARTS AGE example-rhdg-1 0/1 ContainerCreating 0 4s example-rhdg-2 0/1 ContainerCreating 0 4s example-rhdg-3 0/1 ContainerCreating 0 5s infinispan-operator-0 1/1 Running 0 3m example-rhdg-3 1/1 Running 0 8s example-rhdg-2 1/1 Running 0 8s example-rhdg-1 1/1 Running 0 8s
2.2. Creating Data Grid Clusters with Credentials
Create secrets that contain credentials so application users can authenticate to Data Grid nodes. You can then specify the name of the secret in a custom resource yaml
and spin up clusters with the Data Grid Operator.
Procedure
Create a secret that contains credentials for the application user.
Add an authentication secret
yaml
, for example:$ cat > connect_secret.yaml<<EOF apiVersion: v1 kind: Secret metadata: name: connect-secret type: Opaque stringData: username: developer password: changeme EOF
The secret must:
-
Be
type: Opaque
. Have
username
andpassword
fields.ImportantThe preceding authentication secret contains sample values for the
username
andpassword
fields. You should replace these values with credentials that conform to your organization’s security requirements.
-
Be
Apply the authentication secret
yaml
.$ oc apply -f connect_secret.yaml
Create a custom resource
yaml
for the cluster that includes the name of the secret that contains your credentials.$ cat > cr_minimal_with_auth.yaml<<EOF apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: example-rhdg spec: replicas: 2 connector: authentication: type: Credentials secretName: connect-secret EOF
-
replicas
specifies the number of nodes in the Data Grid cluster. -
connector
configures how users connect to Data Grid nodes to store and retrieve data.
-
Apply the custom resource
yaml
.$ oc apply -f cr_minimal_with_auth.yaml
Verify that the Data Grid Operator creates the pods.
$ oc get pods -w NAME READY STATUS RESTARTS AGE example-rhdg-1 0/1 ContainerCreating 0 4s example-rhdg-2 0/1 ContainerCreating 0 4s example-rhdg-3 0/1 ContainerCreating 0 5s infinispan-operator-0 1/1 Running 0 3m example-rhdg-3 1/1 Running 0 8s example-rhdg-2 1/1 Running 0 8s example-rhdg-1 1/1 Running 0 8s
2.3. Verifying Data Grid Clusters
Review log messages to verify that the Data Grid Operator has successfully created a Data Grid cluster.
Procedure
Verify that the Data Grid nodes can discover each other, for example:
$ oc logs example-rhdg-0 | grep DNS_PING INFO Configuring JGroups discovery protocol to openshift.DNS_PING INFO [org.jgroups.protocols.openshift.DNS_PING] (MSC service thread 1-2) serviceName [my-namespace] set; clustering enabled
Verify that the nodes have received a clustered view. Do either of the following:
Retrieve the cluster view from the pod log files.
$ oc logs example-rhdg-0 | grep ISPN000094 INFO [org.infinispan.CLUSTER] (MSC service thread 1-2) \ ISPN000094: Received new cluster view for channel cluster: \ [example-rhdg-0|0] (1) [example-rhdg-0] INFO [org.infinispan.CLUSTER] (jgroups-3,{example_crd_name-0) \ ISPN000094: Received new cluster view for channel cluster: \ [example-rhdg-0|1] (2) [example-rhdg-0, example-rhdg-1]
Retrieve the custom resource type for the Data Grid Operator.
$ oc get infinispan -o yaml
The output of the preceding command contains the following message to indicate that the Data Grid nodes have received a clustered view:
conditions: - message: 'View: [example-rhdg-0, example-rhdg-1]' status: "True" type: wellFormed