<commit_before>---
title: Installing Calico for policy and flannel for networking
description: If you use flannel for networking, you can install Calico network policy to secure cluster communications.
canonical_url: '/getting-started/kubernetes/installation/flannel'
---

## Before you begin

Ensure that you have a Kubernetes cluster that meets the
{{site.prodname}} [system requirements](../requirements). If you don't,
follow the steps in [Using kubeadm to create a cluster](http://kubernetes.io/docs/getting-started-guides/kubeadm/).

## Installing {{site.prodname}} for policy and flannel for networking

### Selecting a datastore type

The procedure differs according to your datastore type. Refer to the
section that matches your type.

- [Kubernetes API datastore](#installing-with-the-kubernetes-api-datastore-recommended) (recommended)

- [etcd datastore](#installing-with-the-etcd-datastore)

### Installing with the Kubernetes API datastore (recommended)
<commit_msg>Add note to canal docs re: Calico VXLAN capabilities (#3146)<commit_after>---
title: Installing Calico for policy and flannel for networking
description: If you use flannel for networking, you can install Calico network policy to secure cluster communications.
canonical_url: '/getting-started/kubernetes/installation/flannel'
---

## Before you begin

> **Note**: Calico includes native VXLAN capabilities without the need for flannel. If you're planning on using flannel for VXLAN, we recommend instead installing Calico using IP-in-IP or VXLAN mode. See how to [determine the best networking option](/networking/determine-best-networking) for your cluster.
> If you're already using flannel for networking, you can [migrate your existing clusters to Calico networking](/getting-started/kubernetes/installation/migration-from-flannel).
{: .alert .alert-info}

Ensure that you have a Kubernetes cluster that meets the
{{site.prodname}} [system requirements](../requirements). If you don't,
follow the steps in [Using kubeadm to create a cluster](http://kubernetes.io/docs/getting-started-guides/kubeadm/).

## Installing {{site.prodname}} for policy and flannel for networking

### Selecting a datastore type

The procedure differs according to your datastore type. Refer to the
section that matches your type.

- [Kubernetes API datastore](#installing-with-the-kubernetes-api-datastore-recommended) (recommended)

- [etcd datastore](#installing-with-the-etcd-datastore)

### Installing with the Kubernetes API datastore (recommended)

{'fraction_non_alphanumeric': 0.09300476947535771, 'fraction_numerical': 0.001589825119236884, 'mean_word_length': 5.23019801980198, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1364457', 'n_tokens_mistral': 727, 'n_tokens_neox': 686, 'n_words': 265}