Welcome to the Linux Foundation Forum!

LAB 4.1 Usage of CRI endpoints without URL scheme is deprecated

Although I've updated crictl configuration with

sudo crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock \
--set image-endpoint=unix:///run/containerd/containerd.sock

when running kubeadm upgrade plan I get the following warning:

W0826 11:57:17.313190 4480 initconfiguration.go:120] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme "unix" to the "criSocket" with value "/run/containerd/containerd.sock". Please update your configuration!

I can perform upgrade of the cluster but was wondering why do I get this warning if entries are already prepended with unix:// ?


  • chrispokorni
    chrispokorni Posts: 2,015

    Hi @k0dard,

    The --set option is one way to set the runtime and image endpoints. An alternate way is to create the /etc/crictl.yaml file.
    I used the following command for the crictl.yaml file, based on the official crictl installation and usage documentation, and did not run into any usage errors:

    $ sudo -c sh 'cat <<EOF > /etc/crictl.yaml
    runtime-endpoint: unix:///run/containerd/containerd.sock
    image-endpoint: unix:///run/containerd/containerd.sock
    timeout: 2
    debug: false
    pull-image-on-create: false


  • This is now part of the lab and I double-checked the file /etc/crictl.yaml. It looks almost similar to yours @chrispokorni. However I get the same warning message as @k0dard.

  • Hi @michael.weinrich,

    Typically warnings can be disregarded and things should work as expected. However, after taking a closer look at the latest docs, it seems this config update may be expected by the kubeadm bootstrapping tool from its /var/lib/kubelet/kubeadm-flags.env config file. Try to update the value of --cri-socket in that file if needed, and try running the kubeadm upgrade plan command again.


  • Got it working. Thanks.


Upcoming Training