Search code examples
javakubernetesignite

Unable to Activate Persistent Ignite Cluster


We are trying to use control.sh to activate out Ignite cluster which is running in Kubernetes and has native persistence as described here, however we are getting to error below.

We have also tried activating the cluster via the post install of the auto deployment but are getting the same error.

lifecycle:
    postStart:
        exec:
            command:
              - >-
                /opt/ignite/apache-ignite/bin/control.sh --set-state ACTIVE
                 --yes

Error:

/opt/ignite/apache-ignite/bin/control.sh --set-state ACTIVE
failed - error: command '/bin/sh -c /opt/ignite/apache-ignite/bin/control.sh --set-state ACTIVE' exited with 2: , message: "JVM_OPTS environment variable is set, but will not be used. To pass JVM options use CONTROL_JVM_OPTS
JVM_OPTS=-DIGNITE_WAL_MMAP=false -DIGNITE_UPDATE_NOTIFIER=false -XX:+UseG1GC -Xmx4g -XX:+DisableExplicitGC -server -Xms4g -XX:+AlwaysPreTouch -XX:+ScavengeBeforeFullGC
Control utility [ver. 2.11.1#20211220-sha1:eae1147d]2021 Copyright(C) Apache Software Foundation
User: root
Time: 2022-05-31T18:56:38.690
Connection to cluster failed. Latest topology update failed.
Command [SET-STATE] finished with code: 2
Control utility has completed execution at: 2022-05-31T18:56:41.859
Execution time: 3169 ms

Solution

  • Activating the cluster relates to the lifecycle of the cluster rather than an individual pod, do you don't want to add it to the pod.

    Instead, it's a "manual" process once all your nodes/pods are up. I wrote about it here.

    In short, either run exec:

    kubectl exec -it ignite-0 --namespace=ignite -- /opt/ignite/apache-ignite-fabric/bin/control.sh --activate
    

    Or create a Kubernetes job.