Discovery-client - Container Deployment

AI Tools

You can run discovery-client as a Docker container on every node in the OpenStack cluster that talks to Lightbits storage. Controller nodes, block (cinder-volume) nodes, and compute nodes all need it. This is an alternative to the .deb / .rpm package install, and you can select whichever one fits your host management model. The two installation methods are not designed to coexist on the same host.

This guide covers a single-host install. Repeat the same steps on every node in the cluster.

Prerequisites

On the host:

  • Docker engine with the compose plugin (docker compose version works).
  • Root access - the container runs privileged and needs host networking.
  • NVMe/TCP kernel module loaded:
Bash
Copy
  • /etc/nvme/hostid present (one-time per host). On most distributions, this is created automatically by the nvme-cli package. If the file is missing, generate it using your distribution's standard procedure before continuing.
  • Network access from the host to the registry that holds the discovery-client image, and to every Lightbits discovery endpoint (default port 8009/tcp).
  • No package install of discovery-client running on this host. If you previously followed the .deb / .rpm instructions, stop and disable the systemd service first, and move the existing configuration out of the way:
Bash
Copy
  • Consumer-placed files under /etc/discovery-client/discovery.d/ can stay. The container will pick them up.

Pulling the Image

The image is published to a Lightbits registry. Replace the registry, image name, and tag with the values you were given for your release:

Bash
Copy

Log in to the Lightbits registry (this requires credentials provided with your release - once per host):

Bash
Copy

Pull the image:

Bash
Copy

Configuring Discovery-client as a Container

discovery-client reads a single configuration file at /etc/discovery-client/discovery-client.yaml inside the container. Lightbits bind-mounts the host directory /etc/discovery-client/ onto that path, so the file lives on the host.

/etc/discovery-client/discovery-client.yaml:

YAML
Copy

The values above are a reference baseline; tune them for your environment. Set logging.level: debug only when troubleshooting.

docker-compose

Save the following as $BASE_DIR/discovery-client-compose.yaml (any path is fine, but the rest of this article uses that):

YAML
Copy

Start:

Bash
Copy

Verify:

The container should be Up and reach healthy:

Bash
Copy

The metrics endpoint should respond as follows:

Bash
Copy

To move to a newer image tag, update DISCOVERY_CLIENT_IMG and re-render the compose file (or edit the image: line in place). Then:

Bash
Copy

The bind-mounted host directory is preserved across upgrades, so the internal cache and any consumer-placed discovery.d/*.conf files carry over.

Stop/Remove

Bash
Copy

The host directory /etc/discovery-client is left in place. Remove it manually if you are decommissioning the host.

VariableType to search · ESC to discard
GlossaryType to search · ESC to discard
InsertType to search · ESC to discard
No matches