Powered by Zoomin Software. For more details please contactZoomin

MarkLogic® Server on Kubernetes

Create a MarkLogic Cluster

  • Last Updated: July 13, 2026
  • 2 minute read
    • MarkLogic Server
    • Documentation

This section describes how to add the MarkLogic Kubernetes repository and includes the steps to create a three-node MarkLogic Cluster with resource allocation using a Helm Chart.

Add the MarkLogic repository

Add the MarkLogic repository to Helm:

  1. Enter this command:

    helm repo add marklogic https://marklogic.github.io/marklogic-kubernetes/ 
    
  2. The message "marklogic" has been added to your repositories appears.

  3. Verify that the repository was added to Helm by entering this command:

    helm repo list 
    
  4. An entry like marklogic https://marklogic.github.io/marklogic-kubernetes/ appears.

  5. Ensure the Helm repository is up to date by entering this command:

    helm repo update 
    
<a name="UUID-51c10871-f0fe-1fd0-21f2-885ea64333c8_section-idm4646498486368033593494645354" id="UUID-51c10871-f0fe-1fd0-21f2-885ea64333c8_section-idm4646498486368033593494645354"/>

## Install the chart

<div class="note">

**Note:** 

It is recommended to deploy the chart in an exclusive namespace.

</div>

To install the chart:

1.  To create a three-node MarkLogic Cluster with a resource allocation of 16 vCPUs, 128 GB RAM, and storage of 500 GB, update the settings in the`values.yaml`file as shown:

  
  <div class="note">

  **Note:**

  Use the latest MarkLogic Docker image for the new implementation as specified in the&nbsp;`values.yaml`&nbsp;file below. Refer to [dockerhub](https://hub.docker.com/r/marklogicdb/marklogic-db/tags) for the latest image available.

  </div>


  ``` yaml
  # Number of Marklogic nodes
  replicaCount: 3

  # Marklogic image parameters
  # using the latest image 11.0.3-centos-1.0.2 
  image:
    repository: marklogicdb/marklogic-db;
    tag: 11.0.3-centos-1.0.2 
    pullPolicy: IfNotPresent

  # Configure persistence using persistent Volume Claim
  persistence:  
    storageClass:“<storageClass-name>”  
    enabled: true  
    size: 500Gi

  # Compute Resources
  resources:
    requests:      
      cpu: 16000m      
      memory: 128Gi
  ```
  <div class="note">
  
  **Note:**

  `storageClass-name` is used for gp2, gp3 (for EKS), or custom.

  </div>
        

2.  Create a Kubernetes Secret for the MarkLogic admin credentials. The secret should include the username, password, and wallet password. The credentials should be inserted between the ' ' marks when using this command:


  ```yaml
  kubectl create secret generic ml-admin-secrets \ 
  --from-literal=username='' \
  --from-literal=password='' \    
  --from-literal=wallet-password=''
  ```

1.  Set the parameter `auth.secretName` in the `values.yaml` file:
  
  
  ```yaml
  # If no secret is specified and the admin credentials are not provided, a secret will be automatically# generated with random admin and wallet passwords.
  auth:  
    secretName: "ml-admin-secrets"

2.  Create a Kubernetes Secret for the credentials of the private image repository. Use the `kubectl create secret` command with the credentials needed to access the repository. In this example, the username and password are set:
  
  
  ```plaintext
  image-repo-secrets
  ```

3.  Once the secret is created, set the value for`imagePullSecrets.name`in the`values.yaml`file:
  
  
  ```yaml
  # Configure the imagePullSecrets to pull the image from private repository that requires credential
  imagePullSecrets: 
    - name: "image-repo-secrets"
  ```

4.  Next, install the chart to the current namespace using the settings in the&nbsp;`values.yaml`&nbsp;file by entering this command:
  
  
  ```JavaScript
  helm install my-release marklogic/marklogic --version <version> --values values.yaml -n <release-namespace> 
  ```

  
  Once the installation is successful, this output appears:
  
  
  ```yaml
  NAME: my-release
  LAST DEPLOYED: 
  NAMESPACE: <release-namespace>
  STATUS: deployed
  REVISION: 1
  ```

  
5.  Verify the deployment by entering this command:
  
  
  ```JavaScript
  helm list -n <release-namespace>
  ```
TitleResults for “How to create a CRG?”Also Available inAlert