Chapter 1. The etcd service

The etcd service is delivered as part of the Red Hat build of MicroShift RPM. The etcd service is run as a separate process and the etcd lifecycle is managed automatically by MicroShift.

1.1. Observe and debug the MicroShift etcd server

You can gather journalctl logs to observe and debug the etcd server logs.

Prerequisites

  • The MicroShift service is running.

Procedure

  • To get the logs for etcd, run the following command:

    $ sudo journalctl -u microshift-etcd.scope
    Note

    MicroShift logs can be accessed separately from etcd logs using the journalctl -u microshift command.

1.2. Configuring the memoryLimitMB value to set parameters for the etcd server

By default, etcd will use as much memory as necessary to handle the load on the system. In some memory constrained systems, it might be necessary to limit the amount of memory etcd is allowed to use at a given time.

Procedure

  • Edit the /etc/microshift/config.yaml file to set the memoryLimitMB value.

    etcd:
      memoryLimitMB: 128
    Note

    The minimum permissible value for memoryLimitMB on MicroShift is 128 MB. Values close to the minimum value are more likely to impact etcd performance. The lower the limit, the longer etcd takes to respond to queries. If the limit is too low or the etcd usage is high, queries time out.

Verification

  1. After modifying the memoryLimitMB value in /etc/microshift/config.yaml, restart MicroShift by running the following command:

    $ sudo systemctl restart microshift
  2. Verify the new memoryLimitMB value is in use by running the following command:

    $ systemctl show --property=MemoryHigh microshift-etcd.scope

1.3. Checking the etcd version

You can get the version information for the etcd database included with your MicroShift.

Procedure

  • To display the base database version information, run the following command:

    $ microshift-etcd version

    Example output

    microshift-etcd Version: 4.15.1
    Base etcd Version: 3.5.10

  • To display the full database version information, run the following command:

    $ microshift-etcd version -o json

    Example output

    {
      "major": "4",
      "minor": "15",
      "gitVersion": "4.15.1",
      "gitCommit": "2e182312718cc9d267ec71f37dc2fbe2eed01ee2",
      "gitTreeState": "clean",
      "buildDate": "2024-01-09T06:51:40Z",
      "goVersion": "go1.20.10",
      "compiler": "gc",
      "platform": "linux/amd64",
      "patch": "",
      "etcdVersion": "3.5.10"
    }