Powered by Zoomin Software. For more details please contactZoomin

MarkLogic® Server on Kubernetes

Set up and use path-based routing with MarkLogic Operator

Set up and use path-based routing with MarkLogic Operator

  • Last Updated: April 14, 2026
  • 2 minute read
    • MarkLogic Server
    • Documentation

MarkLogic Operator supports using path-based routing to access a MarkLogic Cluster. This also includes the capability to use Ingress.

Note:

With MarkLogic Operator, you may configure HAProxy at the cluster level where all nodes will be exposed, and at the group level where only the node of the configured group will be exposed. For details on configuring HAProxy at the group level, see Group-level configuration.

Limitations

Path-based routing and Ingress features are only supported on MarkLogic 11.1 and higher.

Prerequisites

The HAProxy load balancer needs to be enabled to use path-based routing and Ingress. See Operator configuration.

Path-based routing configuration

This section describes how to configure path-based routing.

Enable path-based routing

Path-based routing is disabled by default. To enable it, use the configuration in the sample.yaml file:

  haproxy:
    enabled: true
    pathBasedRouting: true

Front-end port configuration

Configure the front-end port to expose HAProxy in the sample.yaml file using this code:

    frontendPort: 443

Default App Server path and back-end port

Configure the path and back-end port for the default App Servers in the sample.yaml file:

    appServers:
      - name: "app-service"
        port: 8000
        path: "/console"
      - name: "admin"
        port: 8001
        path: "/adminUI"
      - name: "manage"
        port: 8002
        path: "/manage"

Additional App Server

Include additional App Servers in the HAProxy configuration using the sample.yaml file:

    appServers:
      - name: "app-service"
        port: 8000
        path: "/console"
      - name: "admin"
        port: 8001
        path: "/adminUI"
      - name: "manage"
        port: 8002
        path: "/manage"
      - name: newApp
        port: 8010
        path: "/newPath"

Ingress configuration

This section discusses configuring the Ingress.

Enable Ingress

Ingress routing is disabled by default. To enable it, use this configuration in the sample.yaml file:

  ingress:
    enabled: true

Paths and ports configuration

The paths and ports need to be configured in HAProxy. The Ingress will automatically use what is defined there.

Ingress class

Ingresses can be implemented by different controllers with different configurations. Each Ingress should specify a class in the sample.yaml file. In this example, the AWS ALB Ingress controller is specified.

className: "alb"

Annotations

Some Ingress controllers require specific annotations. This example shows a configuration for an ALB Ingress Controller on AWS. See HTTP connection through Ingress on an EKS cluster for more information.

annotations:
    alb.ingress.kubernetes.io/healthcheck-port: '443'
    alb.ingress.kubernetes.io/healthcheck-path: /adminUI
    alb.ingress.kubernetes.io/success-codes: '200-401'
    alb.ingress.kubernetes.io/load-balancer-name: ml
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/target-group-attributes: load_balancing.algorithm.type=least_outstanding_requests
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:XXXXXXXXXXX:certificate/XxXXXXXX-xxxx-XXXX-XXXX-XXXXXXXxxxxXXX
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/group.name: ml-group
    alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=600,routing.http.xff_header_processing.mode=append

Access MarkLogic Cluster

After path-based routing is configured, access the UI using these addresses:

Component

URL

QConsole

https://example.com/qconsole/console

Admin UI

https://example.com/adminUI/

Manage UI

https://example.com/manage/dashboard

TitleResults for “How to create a CRG?”Also Available inAlert