Drive into calico architecture part 2

15
Anirban Sen Chowdhary

Transcript of Drive into calico architecture part 2

Page 1: Drive into calico architecture part 2

Anirban Sen Chowdhary

Page 2: Drive into calico architecture part 2

Project Calico, a Tigera open-source project that provides a layer 3 network implementation, aimed at scalable datacenter deployments. Last time we have gone through the architecture and overview of the components here: https://www.slideshare.net/anir37/drive-into-calico-architecture .This time we will do much more detailed analysis here in next slides.

Page 3: Drive into calico architecture part 2
Page 4: Drive into calico architecture part 2
Page 5: Drive into calico architecture part 2
Page 6: Drive into calico architecture part 2
Page 7: Drive into calico architecture part 2

Calico architecture as we discussed in my previous slides have following components:

1) Felix, which is also called the primary Calico agent that runs on each machine that hosts endpoints.

2) The Orchestrator plugin, orchestrator-specific code that tightly integrates Calico into that orchestrator.

3) etcd, the data store: In Calico, etcd is used as the data store and communication mechanism for all the Calico components. This data store contains all the information the various Calico components require to set up the Calico network.

4) BIRD, which is a BGP client that distributes all the routing information.BGP Route Reflector (BIRD), is an optional BGP route reflector for higher scale.

Page 8: Drive into calico architecture part 2
Page 9: Drive into calico architecture part 2

FelixFelix is the primary Calico agent also called “the heart of Calico networking “, a daemon that runs on each machine that provides endpoints: in most cases that means on nodes that host containers or VMs. It’s main job is programming routes and ACLs into the Linux kernel, and anything else required on the host, by instructing the host to respond to ARPs for workloads in order to provide the desired connectivity for the endpoints on that host.

It also programs interface information to the kernel for outgoing endpoint traffic.  

Page 10: Drive into calico architecture part 2

Orchestrator PluginIn Calico there are separate plugins for each major cloud orchestration platform (e.g. OpenStack, Kubernetes) and no separate orchestration plugin available. What these plugins does is to bind Calico more tightly into the orchestrator so that it allows users to manage the Calico network just as they’d manage network tools that were built into the orchestrator.An example of an orchestrator plugin is the Calico Neutron ML2 mechanism driver that integrates with Neutron’s ML2 plugin, and helps users to configure the Calico network by making Neutron API calls. The plugin’s primary job is to translate those APIs into Calico’s data-model and then store it in Calico’s datastore.

Page 11: Drive into calico architecture part 2

etcd In Calico, etcd is used as the data store and communication mechanism for all the Calico components. This data store contains all the information the various Calico components require to set up the Calico network. etcd which is a distributed key-value store focus on consistency and Calico uses etcd to provide the communication between components and as a consistent data store.

Calico can always build an accurate network and etcd component is distributed across the entire deployment. It is divided into two groups of machines: the core cluster, and the proxies. etcd stores the data for the Calico network in a distributed, consistent, fault-tolerant manner. Calico focuses on the following major object types, stored in etcd: endpoints, security profiles, security policies

Page 12: Drive into calico architecture part 2

BGP Client (BIRD)In Calico, BIRD is an open source BGP client or BGP component that is used to exchange routing information between hosts. In other words, though any BGP client, that can draw routes from the kernel and distribute them is suitable in this role. The routes that Felix programs into the kernel for endpoints are picked up by BIRD and distributed to BGP peers on the network, which gives an incredible advantage of inter-host routing. Generally in larger deployments, Calico will deploy a BGP route reflector a full mesh of BGP peerings between each of our Calico nodes that acts as a central point to which the BGP clients connect, also preventing them from needing to talk to every single BGP client in the cluster. Calico add BIRD protocol stack to provide additional features. BIRD can be installed as :

Page 13: Drive into calico architecture part 2

Hope you like the detailed discussion. For more updates and inner discussion, I will publish in my next slides.

Page 14: Drive into calico architecture part 2

For more information visit

https://www.projectcalico.org/

https://docs.projectcalico.org/v2.6/introduction/

https://blog.tigera.io/tagged/calico

Page 15: Drive into calico architecture part 2