NDB Operator 8.4 Manual  /  NDB Operator CRD Reference  /  NdbClusterSpec Resource

5.5 NdbClusterSpec Resource

NdbClusterSpec defines the desired state of an NDB Cluster. It is used by NdbCluster.

NdbClusterSpec contains the fields named and described in the following list:

  • redundancyLevel (integer): The number of data replicas or copies of data stored by NDB Cluster. Supported values are 1, 2, 3, and 4.

    A redundancy level of 1 provides no fault tolerance in case of node failure, and is not recommended. With a redundancy level of 2 or higher, the cluster can continue to serve client requests even in the event of node failures; this is the default value, recommended for most deployments. A redundancy level of 3 (or 4) provides additional protection, but is usually not necessary.

    One management server is created when the redundancy level is set to 1. For a value of 2 or higher, two management servers are used.


    Once an NDB Cluster has been created, it is possible but quite difficult and time-consuming to change this value. Unless you are sure that you need a different value for the redundancy level, it is recommended that you use the default (2).

    For more information, see the description of the NoOfReplicas data node configuration parameter, as well as NDB Cluster Nodes, Node Groups, Fragment Replicas, and Partitions, in the NDB 8.4 documentation.

  • managementNode (NdbManagementNodeSpec): (optional) Specifies the configuration of the management node running in MySQL Cluster.

  • dataNode (string): (optional) Configuration parameters to pass to the data nodes. Consists of one or more lines using the format paramName: paramValue.


        # Specified in paramName: paramValue format
        DataMemory: 100M
        MaxNoOfTables: 1024
        MaxNoOfConcurrentOperations: 409600
        Arbitration: WaitExternal

    NDB Cluster Data Node Configuration Parameters, provides a quick reference to NDB Cluster data node configuration parameters.

  • mysqlNode (NdbMysqldSpec): (optional) Specification for any MySQL Servers run as NDB Cluster SQL nodes.

    NDB Operator requires at least one MySQL Server running in the NDB Cluster for internal operations. If none is specified, the operator by default adds one MySQL Server to the specification.

  • freeAPISlots (integer): (optional) The number of extra API sections declared in the NDB Cluster configuration in addition to any declared implicitly by NDB Operator for MySQL servers. Any NDB API application can connect to the NDB Cluster using one of these free slots.

  • tdeSecretName (string): (optional) The name of the secret that holds the encryption key or password required for transparent data encryption (TDE) in NDB Cluster. If a value is provided, NDB Operator enables TDE and uses the password stored in the secret as the file system password for all data nodes in the cluster. If no value is provided, TDE is not enabled.

  • image (string): (optional) The name of the MySQL NDB Cluster image to be used. If not specified, this defaults to mysql/mysql-cluster:latest.


    The minimum version of NDB Cluster supported by NDB Operator is NDB 8.0.26.

  • imagePullPolicy (Kubernetes core/v1.PullPolicy): (optional) Describes a policy for if and when to pull the MySQL NDB Cluster container image.

  • imagePullSecretName (string): (optional) Specifies the name of the secret that holds the credentials required for pulling the MySQL Cluster image.