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:
-
Enter this command:
helm repo add marklogic https://marklogic.github.io/marklogic-kubernetes/ -
The message
"marklogic" has been added to your repositoriesappears. -
Verify that the repository was added to Helm by entering this command:
helm repo list -
An entry like
marklogic https://marklogic.github.io/marklogic-kubernetes/appears. -
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 `values.yaml` 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 `values.yaml` 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>
```