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.
Get Your Free Linux training!
Join our free Linux training and discover the power of open-source technology. Enhance your skills and boost your career! Learn Linux for Free!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.
Table of Contents
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
- 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.
- 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.
- Prepare the Installation Directory: The script creates the directory /opt/cni/bin, which is a common location for storing CNI binaries, using mkdir.
- Extract the Plugins: It then extracts the downloaded tarball to the installation directory with tar, making the plugins available for Kubernetes to use.
- 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’s path: Detailed Guide to Fix
Mastering Kubernetes Pods: A Comprehensive Guide to Container Orchestration