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
NoteMicroShift 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 thememoryLimitMB
value.etcd: memoryLimitMB: 128
NoteThe 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
After modifying the
memoryLimitMB
value in/etc/microshift/config.yaml
, restart MicroShift by running the following command:$ sudo systemctl restart microshift
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" }