Welcome to the Linux Foundation Forum!

Lab 4.1 - sh: find: command not found

Lab 4.1 step 2 (b):

In order to use TLS, find the three files that need to be passed with the etcdctl command. Change into the directory and view available files.
# find . -name etcd

My shell returns sh: find: command not found

Also, none of the ls commands work for me.

Again returning, sh: ls: command not found

I can create a snapshot by entering the ETCDCTL commands.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Comments

  • I ran into this as well. I am not entirely sure if it is because the etcd container is updated to a very minimal image, but I found a workaround:

    1. On the control panel / master server, I looked for the etcd container:
    1. sudo docker ps -a | grep etcd
    2. efb1d0cf67a5 0369cf4303ff "etcd --advertise-cl…" About an hour ago Up About an hour k8s_etcd_etcd-cp01_kube-system_c14cf7d1dfa698068ffc2f808ebe757d_5
    3. eb00f4b04d24 k8s.gcr.io/pause:3.2 "/pause" About an hour ago Up About an hour k8s_POD_etcd-cp01_kube-system_c14cf7d1dfa698068ffc2f808ebe757d_5
    4. f0cc0d56dfbf 0369cf4303ff "etcd --advertise-cl…" 32 hours ago Exited (0) 32 hours ago k8s_etcd_etcd-cp01_kube-system_c14cf7d1dfa698068ffc2f808ebe757d_4
    5. 4ed688ab3e53 k8s.gcr.io/pause:3.2 "/pause" 32 hours ago Exited (0) 32 hours ago k8s_POD_etcd-cp01_kube-system_c14cf7d1dfa698068ffc2f808ebe757d_4
    1. Once I found the container, I ran docker inspec on the container and look at the parameters passed to the containers that reference the etc directory, like so:
    1. rilindo@cp01:~$ sudo docker inspect efb1d0cf67a5 | grep etc
    2. "Path": "etcd",
    3. "--cert-file=/etc/kubernetes/pki/etcd/server.crt",
    4. "--data-dir=/var/lib/etcd",
    5. "--key-file=/etc/kubernetes/pki/etcd/server.key",
    6. "--peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt",
    7. "--peer-key-file=/etc/kubernetes/pki/etcd/peer.key",
    8. "--peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt",
    9. "--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt"
    10. "HostsPath": "/var/lib/kubelet/pods/c14cf7d1dfa698068ffc2f808ebe757d/etc-hosts",
    11. "Name": "/k8s_etcd_etcd-cp01_kube-system_c14cf7d1dfa698068ffc2f808ebe757d_5",
    12. "/var/lib/etcd:/var/lib/etcd",
    13. "/etc/kubernetes/pki/etcd:/etc/kubernetes/pki/etcd",
    14. "/var/lib/kubelet/pods/c14cf7d1dfa698068ffc2f808ebe757d/etc-hosts:/etc/hosts",
    15. "/var/lib/kubelet/pods/c14cf7d1dfa698068ffc2f808ebe757d/containers/etcd/7aecfad3:/dev/termination-log"
    16. "Source": "/var/lib/etcd",
    17. "Destination": "/var/lib/etcd",
    18. "Source": "/etc/kubernetes/pki/etcd",
    19. "Destination": "/etc/kubernetes/pki/etcd",
    20. "Source": "/var/lib/kubelet/pods/c14cf7d1dfa698068ffc2f808ebe757d/etc-hosts",
    21. "Destination": "/etc/hosts",
    22. "Source": "/var/lib/kubelet/pods/c14cf7d1dfa698068ffc2f808ebe757d/containers/etcd/7aecfad3",
    23. "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"
    24. "etcd",
    25. "--cert-file=/etc/kubernetes/pki/etcd/server.crt",
    26. "--data-dir=/var/lib/etcd",
    27. "--key-file=/etc/kubernetes/pki/etcd/server.key",
    28. "--peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt",
    29. "--peer-key-file=/etc/kubernetes/pki/etcd/peer.key",
    30. "--peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt",
    31. "--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt"
    32. "io.kubernetes.container.logpath": "/var/log/pods/kube-system_etcd-cp01_c14cf7d1dfa698068ffc2f808ebe757d/etcd/5.log",
    33. "io.kubernetes.container.name": "etcd",
    34. "io.kubernetes.pod.name": "etcd-cp01",
    1. Now I got the paths, I can simply log in to the etcd pod and using the paths I found in my grep output, backup the etcd database.
  • Posts: 2,434

    Hi @danielclough,

    It seems the etcd container image has been modified and commands that recently worked have been removed from the container's environment. Bummer...

    @rilindo, alternatively you can display the content of the /etc/kubernetes/manifests/etcd.yaml manifest, or kubectl describe the etcd pod.

    Regards,
    -Chris

  • @chrispokorni That is even easier. I would go with that approach, then.

  • Posts: 1,000

    Hello,

    Indeed, it looks like the newly updated image only has two commands, cp and sh. Makes things a bit more difficult to work with, for sure. It no longer even has commands such as ls, nor a way of installing new software.

    I'm sure it was a great thought for those who assume no one else would need to work inside the image. Probably a "security feature" of some sort.

    Thanks for the heads up.

    Regards,

  • Then how can I delete the file inside the container? When I tried to restore the etcd backup, I got the following error "Error: data-dir "default.etcd" exists"; I found default.etcd and snapshot.db under /tmp, I would like to remove those 2 files and retry toe etcd restore, how can I remove those 2 files inside the etcd container?

    Thanks

  • Hi @johnley,

    Due to continuous changes in Kubernetes and its components, luckily, the latest image versions of the etcd container image supports again most commands that allow us to manage artifacts inside the running container. That means that now we can run again commands such as cd, ls, cp, mv, rm, rmdir, touch, grep, cat, echo, which, ip in an interactive terminal on the etcd container.

    Regards,
    -Chris

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training