How to take backup of k8s cluster without using 3rd party application?

I am trying to take a backup of the Kubernetes cluster (not PVs). I tried taking backup of /var/lib/etcd but only the changes in the namespace are being reflected in /var/lib/etcd any other changes like replica sets, pods and etc. are not reflected. The solution I am looking for should be able to restore the cluster into a prior state.

Cluster information:

Kubernetes version:1.18.1.
Cloud being used: bare-metal
Host OS: centos