Skip to main content
Calico Open Source 3.31 (latest) documentation

Install Calico networking and network policy for on-premises deployments

Big picture​

Install Calico to provide both networking and network policy for self-managed on-premises deployments.

Value​

Calico networking and network policy are a powerful choice for a CaaS implementation. If you have the networking infrastructure and resources to manage Kubernetes on-premises, installing the full Calico product provides the most customization and control.

Concepts​

Calico is installed by an operator which manages the installation, upgrade, and general lifecycle of a Calico cluster. The operator is installed directly on the cluster as a Deployment, and is configured through one or more custom Kubernetes API resources.

Calico manifests​

Calico can also be installed using raw manifests as an alternative to the operator. The manifests contain the necessary resources for installing Calico on each node in your Kubernetes cluster. Using manifests is not recommended as they cannot automatically manage the lifecycle of the Calico as the operator does. However, manifests may be useful for clusters that require highly specific modifications to the underlying Kubernetes resources.

Before you begin...​

How to​

Install Calico​

  1. Install the Tigera Operator and custom resource definitions.

    kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/operator-crds.yaml
    kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/tigera-operator.yaml
  2. Download the custom resources necessary to configure Calico.

    Automatic data plane deployment

    You can select either eBPF or iptables to be deployed automatically.

    curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/custom-resources-bpf.yaml

    If you wish to customize the Calico install, customize the downloaded custom-resources.yaml manifest locally.

  3. Create the manifest to install Calico.

    kubectl create -f custom-resources-bpf.yaml
  4. Monitor the deployment by running the following command:

    watch kubectl get tigerastatus

    After a few minutes, all the Calico components display True in the AVAILABLE column.

    Expected output
    NAME                            AVAILABLE   PROGRESSING   DEGRADED   SINCE
    apiserver True False False 4m9s
    calico True False False 3m29s
    goldmane True False False 3m39s
    ippools True False False 6m4s
    kubeproxy-monitor True False False 6m15s
    whisker True False False 3m19s
PolicyIPAMCNIOverlayRoutingDatastore

Next steps​

Required

Recommended - Networking

  • If you are using the default BGP networking with full-mesh node-to-node peering with no encapsulation, go to Configure BGP peering to get traffic flowing between pods.
  • If you are unsure about networking options, or want to implement encapsulation (overlay networking), see Determine best networking option.

Recommended - Security