A newer version of this documentation is available.

View Latest

Accessing the Couchbase Server User Interfaces

    +

    When you deploy Couchbase Server with the Couchbase Autonomous Operator, you will use the Kubernetes or OpenShift interfaces to verify that the pods are all deployed and running. However, you will need to access the traditional Couchbase Server user interfaces in order to develop, administer, and configure Couchbase itself.

    The Couchbase Server cluster is managed by the Operator according to the CouchbaseCluster configuration. Certain administration tasks, such as adding or removing nodes and buckets, will be reverted by the Operator.

    Accessing the Couchbase Server Web Console

    To access the Couchbase Server Web Console, you must first enable it in the CouchbaseCluster configuration file. Do this by setting the exposeAdminConsole parameter to true:

    ...
    kind: "CouchbaseCluster"
    ...
    spec:
      ...
      exposeAdminConsole: true
    ...

    When this parameter is set to true, the Operator creates a Kubernetes NodePort service that exposes the Web Console on each of the nodes. To get the port that the service is exposing to the nodes, use the following command:

    On Kubernetes

    kubectl describe cbc

    On OpenShift

    oc describe cbc

    Output:

    ...
    Status:
      Admin Console Port:		30239
      Admin Console Port SSL:	31628
    ...

    In this example, the Web Console is now available across all of the nodes in the cluster at <node_ip>:30239, where <node_ip> is the IP address of a Kubernetes node.

    The username and password for Couchbase Server on port 8091 are set in the secret.yaml file.

    If at any time you want to remove access to the Web Console, set the exposeAdminConsole parameter to false in the CouchbaseCluster configuration file, or remove the parameter altogether.

    Accessing Specific Couchbase Services

    By default, the exposed port will forward to any of the pods in the cluster. To access the Web Console of a pod that is running a specific service, such as the search or query service, you need to specify which services to expose by using the adminConsoleServices parameter. For example, to expose only pods running the query service:

    ...
    kind: "CouchbaseCluster"
    spec:
      ...
      exposeAdminConsole: true
      adminConsoleServices:
        - query
    ...

    Accessing Specific Couchbase Pods

    To directly access the Web Console of a specific pod, run the following command on the pod that you want to expose:

    On Kubernetes

    kubectl port-forward cb-example-0000 8091:8091

    On OpenShift

    oc port-forward cb-example-0000 8091:8091

    In this example, the Web Console that is running on the pod cb-example-0000 is now available at 127.0.0.1:8091. Note that you will not be able to access other nodes in the cluster as this command will only proxy through to the specified node.

    The username and password for Couchbase Server on port 8091 are set in the secret.yaml file.

    Accessing the Couchbase CLI

    The Couchbase Server command-line tool, couchbase-cli, can be used to perform one-off administration tasks such as creating RBAC users and initiating cbcollect_info tasks.

    If the Web Console is exposed, you can use the CLI tool from any computer that can access the IP address of the Kubernetes cluster. Alternatively, couchbase-cli can be run as a Kubernetes job within the Kubernetes cluster.

    Using the Web Console Port

    Prerequisites:

    • Expose the Web Console using the CouchbaseCluster configuration file.

    • Install Couchbase Server on your computer (so that you have couchbase-cli on your computer)

    Use the following command to retrieve the Web Console port:

    On Kubernetes

    kubectl describe cbc cb-example |  grep "Admin Console Port:"

    On OpenShift

    oc describe cbc cb-example |  grep "Admin Console Port:"

    Output:

    Admin Console Port:  32486

    If you have Couchbase Server installed on your computer, you can now use couchbase-cli to administer the cluster. For example, adding an RBAC user:

    ./couchbase-cli user-manage -c 192.168.99.100:32486 -u Administrator -p password --rbac-username default --rbac-password password --roles admin --auth-domain local --set

    Using a Kubernetes Job

    The most secure way to use couchbase-cli in Kubernetes is to run it as a Kubernetes job. This option allows you to hide the user name and password of the cluster by leveraging Kubernetes Secrets.

    A Couchbase collect-logs-start job has been provided in the Operator package as an example. After pushing it to Kubernetes, it creates a job called collect-info that uses the same secret that is provided in the CouchbaseCluster configuration.

    To create the collect-info job on Kubernetes:

    kubectl create -f couchbase-cli-collect-logs.yaml

    To check the status on Kubernetes:

    kubectl get job collect-info

    To create the collect-info job on OpenShift:

    oc create -f couchbase-cli-collect-logs.yaml

    To check the status on Kubernetes:

    oc get job collect-info