Apache Ignite:

Apache Ignite is a high-performance, integrated and distributed in-memory platform for computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with traditional disk-based or flash technologies.

Apache Ignite In-Memory Data Fabric comprises the following set of components shared across the Ignite platform.

| Transactions & Analytics  | Hadoop & Spark         | Runs Everywhere    |
|---------------------------|------------------------|--------------------|
| Data Grid                 | Spark Shared RDD       | Java               |
| Sql Grid                  | In-Memory File System  | .NET               |
| Compute Grid              | In-Memory MapReduce    | C++                |
| Service Grid              |                        | Client Protocols   |
| Streaming & CEP           |                        | Deployment Options |
| RDBMS Integration         |                        |                    |
| Data Structures           |                        |                    |
| Messaging & Events        |                        |                    |

Apache Ignite discovery for Kubernetes.

Kubernetes IP Finder:

First, to create the service we need to prepare ignite-svc.yaml file with the content below:


apiVersion: v1
kind: Service
metadata:
  # Name of Ignite Service used by Kubernetes IP finder.
  # The name must be equal to TcpDiscoveryKubernetesIpFinder.serviceName.
  name: ignite
spec:
  clusterIP: None # custom value.
  ports:
    - port: 9042 # custom value.
  selector:
    # Must be equal to one of the labels set in Ignite pods'
    # deployement configuration.
    app: ignite


apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: apache-ignite-cluster
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: ignite
    spec:
      containers:
      - name: apache-ignite-node
        image: vishnunair/docker-ignite:latest
        env:
        - name: OPTION_LIBS
          value: ignite-kubernetes
        - name: CONFIG_URI
          value: file:///data/example-kube.xml
        ports:
        - containerPort: 11211 # REST port number.
        - containerPort: 47100 # communication SPI port number.
        - containerPort: 47500 # discovery SPI port number.
        - containerPort: 49112 # JMX port number.

Create the Kubernetes service for Apache Ignite


$ kubectl create -f ignite-svc.yaml

Create the Kubernetes deployments for Apache Ignite


$ kubectl create -f ignite-deployment.yaml

To see the pods


$ kubectl get pods

OUTPUT WILL BE SOMETHING LIKE BELOW:

NAME                                     READY     STATUS    RESTARTS   AGE
apache-ignite-cluster-2708371603-7l3x0   1/1       Running   0          4m
apache-ignite-cluster-2708371603-mbv8j   1/1       Running   0          4m
apache-ignite-cluster-2708371603-q82q6   1/1       Running   0          4m

Deployment

Pods

Logs