Quickstart for Calico on minikube
This quickstart gets you a single-node minikube cluster with Calico in approximately 1 minute. You can use this cluster for testing and development.
Use this quickstart to quickly and easily try Calico features.
Before you begin
- Install, but do not start, minikube. How to install minikube
- Install kubectl.How to install kubectl
- Install a minikube driver. For example Docker. A full List of available drivers can be found here.
Create a single-node minikube cluster
- Built-in Calico
Minikube offers a built-in Calico implementation, this is a quick way to checkout Calico features.
Enabling preinstalled Calico might be the quickest way for testing. However, if you like to checkout a more recent version or features of Calico you should consider using Manifest or Operator approach.
minikube start --network-plugin=cni --cni=calico
- Start your minikube cluster with one control plane node using the following command.
192.168.0.0/16 is already in use within your network you must select a different pod network CIDR, by replacing
192.168.0.0/16 in the following command.
minikube start --cni=false --network-plugin=cni --extra-config=kubeadm.pod-network-cidr=192.168.0.0/16 --subnet=172.16.0.0/24
- Install the Tigera Calico operator and custom resource definitions.
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/tigera-operator.yaml
Due to the large size of the CRD bundle,
kubectl apply might exceed request limits. Instead, use
kubectl create or
- Install Calico by creating the necessary custom resource. For more information on configuration options available in this manifest, see the installation reference.
Before creating this manifest, read its contents and make sure its settings are correct for your environment. For example,
if you have replaced
pod-network-cidr you must change it in this file as well.
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/custom-resources.yaml
Start your minikube cluster with one control plane node using the following command:
minikube start --network-plugin=cni
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/calico.yaml
Verify Calico installation
Verify Calico installation in your cluster using the following command:
watch kubectl get pods -l k8s-app=calico-node -A
You should see a result similar to the below. Note that the namespace might be different, depending on the method you followed.
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-node-mlqvs 1/1 Running 0 5m18s
ctrl+c to break out of watch.
Congratulations you now have a minikube cluster equipped with Calico
Add an additional worker node
This as an optional step, you can safely skip this step if you do not require an additional worker node.
minikube node add
Verify nodes using the following command:
kubectl get nodes
Delete the cluster using the following command: