<p>Silly question.  Just setup a 4 node kubernetes cluster (one master node).  The etcd pod is running in the kube-system.  But I can not find the etcdctl in regular path.  </p>

<pre><code># find / -name etcdctl -print
/var/lib/docker/overlay2/9c0f2f2ef864f3be6f4195cbcda59b712805fc1957204b97d36a9239e3adb1cf/diff/usr/local/bin/etcdctl
/var/lib/docker/overlay2/bf2ff1f903bef67c6ed8ddf0b37cc6a90788974f61275df5d5fe3d9bdaca232c/merged/usr/local/bin/etcdctl
</code></pre>

<p>Used the found etcdctl to take snapshot but it's hung.  Do I need to install etcdctl?  Thanks!</p>

<p>If you are new to <code>docker</code>, what you have found is the volume mount for the etcd container, and inside that container is the <code>etcdctl</code> binary that is designed for use with the <code>etcd</code> binary inside the container.</p>

<p>You will want to <code>docker exec</code> into the container so you will have access to all the environment variables, config files, hostnames, etc that would be required to interact with <code>etcd</code>. <a href="https://github.com/etcd-io/etcd/blob/v3.3.18/Documentation/op-guide/container.md#running-a-3-node-etcd-cluster-1" rel="nofollow noreferrer">Their documentation</a> shows an example of using <code>docker exec</code>.</p>

<p>The <a href="https://github.com/etcd-io/etcd/blob/v3.3.18/Documentation/op-guide/recovery.md#snapshotting-the-keyspace" rel="nofollow noreferrer">fine manual</a> also describes that you will want to ensure the <code>ETCDCTL_API</code> environment variable is correctly set while using <code>etcdctl</code>.</p>
