Skip to Content

Minikube: Exiting due to NOT_FOUND_CNI_PLUGINS

minikube start –vm-driver=none
😄 minikube v1.32.0 on Ubuntu 20.04
✨ Using the none driver based on existing profile
👍 Starting control plane node minikube in cluster minikube
🔄 Restarting existing none bare metal machine for “minikube” …

🔗 Exiting due to NOT_FOUND_CNI_PLUGINS:

💡 Suggestion:

The none driver with Kubernetes v1.24+ requires containernetworking-plugins.

Exiting due to NOT_FOUND_CNI_PLUGINS: The start process was halted because Minikube could not find the necessary CNI plugins, which are essential for setting up the networking between containers in Kubernetes.

How to fix NOT_FOUND_CNI_PLUGINS

Here is solution for this issue:

Go to containernetworking-plugins to find the latest version.

Create a file plugin.sh with the following commands and change the version:

CNI_PLUGIN_VERSION="<version_here>"
CNI_PLUGIN_TAR="cni-plugins-linux-amd64-$CNI_PLUGIN_VERSION.tgz" # change arch if not on amd64
CNI_PLUGIN_INSTALL_DIR="/opt/cni/bin"
curl -LO "https://github.com/containernetworking/plugins/releases/download/$CNI_PLUGIN_VERSION/$CNI_PLUGIN_TAR"
sudo mkdir -p "$CNI_PLUGIN_INSTALL_DIR"
sudo tar -xf "$CNI_PLUGIN_TAR" -C "$CNI_PLUGIN_INSTALL_DIR"
rm "$CNI_PLUGIN_TAR"

run the script

chmod +x plugin.sh
sh ./plugin.sh

Steps to fix NOT_FOUND_CNI_PLUGINS

  1. Define the Plugin Version and Download Path: The script sets variables for the CNI plugin version and the download path. CNI_PLUGIN_VERSION is set to “v1.4.0, and CNI_PLUGIN_TAR constructs the file name for the tarball.
  2. Download the CNI Plugins: Using curl, the script downloads the specified version of the CNI plugins from the official GitHub releases of the containernetworking plugins project.
  3. Prepare the Installation Directory: The script creates the directory /opt/cni/bin, which is a common location for storing CNI binaries, using mkdir.
  4. Extract the Plugins: It then extracts the downloaded tarball to the installation directory with tar, making the plugins available for Kubernetes to use.
  5. Cleanup: The downloaded tarball is removed with rm to clean up unnecessary files.

Running the Script:

  • The script is saved to a file named plugin.sh, and then executed by running sh plugin.sh in the terminal. This installs the necessary CNI plugins, allowing Minikube to use the none driver successfully.

 

If you still meet the same error after running above script, you can check the file permission of directory /opt/cni/.

ls -lrtd /opt/cni

change it to 755 with the following command

chmod 755 /opt/cni

Then run minikube start –vm-driver=none again. The NOT_FOUND_CNI_PLUGINS error should be fixed.

Conclusion

This solution addresses the NOT_FOUND_CNI_PLUGINS error by manually downloading and installing the required networking plugins, enabling Minikube to start Kubernetes with the necessary network configurations for container communication.

2 ways to check file permissions in Linux

Kubernetes requires crictl to be installed in root&#8217;s path: Detailed Guide to Fix

Mastering Kubernetes Pods: A Comprehensive Guide to Container Orchestration