github.com/apprenda/kismatic@v1.12.0/docs/networking.md (about) 1 # Networking 2 KET uses CNI as the solution for cluster networking, and it supports multiple 3 CNI providers out of the box. Choosing the CNI provider will depend on your specific 4 infrastructure and application needs. 5 6 The CNI provider is exposed as an Add-On in the KET plan file via the 7 `add_ons.cni.provider` field. See the [CNI Add-On reference documentation](add_ons.md#cni) 8 for more information on how to configure CNI. 9 10 11 ### Default CNI Provider 12 The default CNI provider used by KET is Calico for the following reasons: 13 * Strong network policy support: it supports granular network policy for true SDN patterns at the Pod level. 14 * Based on routable, layer 2/3 primitives, instead of overlays/encapsulation, making any network debugging much easier and predictable 15 * Supported by a commercial entity with years of operational experience 16 17 However, other CNI plugins provide features and compatibility that may be more appropriate for your particular cloud or architecture requirements. 18 19 ### CNI Provider Comparison 20 The following table attempts to list key characteristics of each supported implementation. 21 22 | | [Calico](https://www.projectcalico.org/) | [Weave](https://www.weave.works/oss/net/) | [Contiv](https://contiv.github.io/) | 23 |---|--------|-------|--------| 24 | Data Path Technique | L3 with BGP Peering or IPIP Encapsulation | UDP Encapsulation | VXLAN | 25 | Requires etcd cluster | Yes | No | Yes | 26 | Multicast Support | No | Yes | Yes | 27 | Ingress Policy | Yes | Yes | Yes<sup>1</sup> | 28 | Egress Policy | Yes | No | Yes | 29 | Can Encrypt Traffic | No | Yes | No | 30 31 <sup>1. Contiv does not support the Kubernetes Network Policy API. It uses a custom mechanism for applying policy.</sup> 32 33 ## Calico Notes 34 Calicoctl is the command-line utility for managing the Calico network. 35 36 If you need to troubleshoot calico, using calicoctl will be useful. This is 37 a quick command that you can use to run calicoctl: 38 ``` 39 docker run -i \ 40 --net host \ 41 -v /etc/kubernetes:/etc/kubernetes \ 42 -v /etc/calico/calicoctl.cfg:/etc/calico/calicoctl.cfg \ 43 calico/ctl:v1.1.0 44 ``` 45 46 Links: 47 * Troubleshooting docs: http://docs.projectcalico.org/v2.3/usage/troubleshooting/ 48 * Reference docs: http://docs.projectcalico.org/v2.3/reference/ 49 50 ## Weave Notes 51 52 Links: 53 * How it works: https://www.weave.works/docs/net/latest/concepts/how-it-works/ 54 * Operational Guide: https://www.weave.works/docs/net/latest/operational-guide/ 55 * Troubleshooting: https://www.weave.works/docs/net/latest/troubleshooting/ 56 57 ## Contiv Notes 58 KET supports Contiv as a "preview", as it is still under active development. 59 60 The following are known issues you should be aware of if you choose to install Contiv: 61 * https://github.com/contiv/netplugin/issues/940 62 * https://github.com/contiv/netplugin/issues/937 63 * https://github.com/contiv/netplugin/issues/871 64 * https://github.com/contiv/netplugin/issues/777 65 * https://github.com/contiv/netplugin/issues/942 66 67 Useful Links: 68 * Policies: https://contiv.github.io/documents/networking/policies.html 69 * Admin guide: https://contiv.github.io/documents/admin/index.html 70 * CLI reference: https://contiv.github.io/documents/reference/netctlcli.html