Chapter 1. The etcd service
The etcd service is delivered as part of the 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. Checking the etcd version
You can get the version information for the etcd database included with your MicroShift by using one or both of the following methods, depending on the level of information that you need.
Procedure
To display the base database version information, run the following command:
$ microshift-etcd version
Example output
microshift-etcd Version: 4.17.1 Base etcd Version: 3.5.13
To display the full database version information, run the following command:
$ microshift-etcd version -o json
Example output
{ "major": "4", "minor": "16", "gitVersion": "4.17.1~rc.1", "gitCommit": "140777711962eb4e0b765c39dfd325fb0abb3622", "gitTreeState": "clean", "buildDate": "2024-05-10T16:37:53Z", "goVersion": "go1.21.9" "compiler": "gc", "platform": "linux/amd64", "patch": "", "etcdVersion": "3.5.13" }
1.3. Troubleshooting etcd
To troubleshoot etcd and improve performance, configure the memory allowance for the service.
1.4. Configuring the memoryLimitMB value to set parameters for the etcd server
By default, etcd uses as much memory as necessary to handle the load on the system. In memory-constrained systems, you might need to limit the amount of memory etcd uses.
Procedure
Edit the
/etc/microshift/config.yaml
file to set thememoryLimitMB
value.etcd: memoryLimitMB: 128
NoteThe minimum required 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