Quickstart for Calico on minikube
Big picture
This quickstart gets you a single-node minikube cluster with Calico in approximately 1 minute. You can use this cluster for testing and development.
Value
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.
How to
Create a single-node minikube cluster
- Built-in Calico
- Operator
- Manifest
Minikube offers a built-in Calico implementation, this is a quick way to checkout Calico features.
note
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.
note
If 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.27.4/manifests/tigera-operator.yaml
note
Due to the large size of the CRD bundle, kubectl apply
might exceed request limits. Instead, use kubectl create
or kubectl replace
.
- Install Calico by creating the necessary custom resource. For more information on configuration options available in this manifest, see the installation reference.
note
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.27.4/manifests/custom-resources.yaml
Start your minikube cluster with one control plane node using the following command:
minikube start --network-plugin=cni
Install Calico.
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.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
Use ctrl+c
to break out of watch.
Congratulations you now have a minikube cluster equipped with Calico
Add an additional worker node
note
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
Clean up
Delete the cluster using the following command:
minikube delete
Next steps
Required
Recommended tutorials