What is Calico? [칼리코의 정의]

Calico is an open source networking and network security solution for containers, virtual machines, and native host-based workloads. Calico supports a broad range of platforms including Kubernetes, OpenShift, Mirantis Kubernetes Engine (MKE), OpenStack, and bare metal services.

-> Calico는 Container, VM(가상 머신), Native host base workloads(기본 서버의 워크로드)를 위한 오픈소스 네트워크 및 네트워크 보안 설루션

Whether you opt to use Calico's eBPF data plane or Linux’s standard networking pipeline, Calico delivers blazing fast performance with true cloud-native scalability. Calico provides developers and cluster operators with a consistent experience and set of capabilities whether running in public cloud or on-prem, on a single node, or across a multi-thousand node cluster.

-> Calico의 eBPF의 data plane을 사용하던, Linux의 표준 네트워크 파이프라인을 사용하던 Calico는 Cloud native 의 확장성과 빠른 성능을 제공

 Calico 는 개발자와 Cluster 운영자에게 Public Cloud, On-prem 이든, 싱글 node 나 수많은 Multi Node의 Cluster등과 상관없이 일관된 경험과 기능을 제공해준다.

 

Why use Calico? [왜? 칼리코를 사용해야 하나!!!?]

Choice of dataplanes [dataplanes의 선택]
Calico gives you a choice of dataplanes, including a pure Linux eBPF dataplane, a standard Linux networking dataplane, and a Windows HNS dataplane. Whether you prefer cutting edge features of eBPF, or the familiarity of the standard primitives that existing system administrators already know, Calico has you covered.

-> Pure Linux eBPF dataplane과 Standard Linux networking dataplane 및 Windows HNS dataplane을 선택해서 사용이 가능하다. (eBPF, SLND, HNS 지원)

Whichever choice is right for you, you’ll get the same, easy to use, base networking, network policy and IP address management capabilities, that have made Calico the most trusted networking and network policy solution for mission-critical cloud-native applications.

-> 사용자의 선택이 어떤 것이든 Calico는 가장 신뢰할 수 있는 네트워크 및 네트워크 정책 설루션으로 생성한 Most Trusted networking과 network policy 기능을 사용할 수 있다.

 

Best practices for network security [네트워크 보안의 모범사례]

Calico’s rich network policy model makes it easy to lock down communication so the only traffic that flows is the traffic you want to flow. Plus with built in support for Wireguard encryption, securing your pod-to-pod traffic across the network has never been easier.

-> Calico의 풍부한 네트워크 정책을 사용하면 트레픽을 쉽게 lock 할수 있음으로, 원하는 트레픽만 흐르게 할수있다. 또한 Wireguard encryption 을 통해서 Pod 와 Pod 간의 트레픽을 쉽게 보호할수 있다.

Calico’s policy engine can enforce the same policy model at the host networking layer and (if using Istio & Envoy) at the service mesh layer, protecting your infrastructure from compromised workloads and protecting your workloads from compromised infrastructure.

-> Calico 의 정책은 호스트 네트워크 계층과 서비스 메시 계층 (istio & envoy)에서 동일한 모델이 사용 가능하여, 워크로드가 손상되어도 인프라가 보호되며, 인프라가 손상되어도 워크로드가 보호될 수 있다. 

 

Performance [성능]

Depending on your preference, Calico uses either Linux eBPF or the Linux kernel's highly optimized standard networking pipeline to deliver high performance networking. Calico's networking options are flexible enough to run without using overlays in most environments, avoiding the overheads of packet encap/decap. Calico’s control plane and policy engine has been fine tuned over many years of production use to minimize overall CPU usage and occupancy.

-> 사용자의 선택에 따라 eBPF를 사용하여 고성능의 네트워크를 구성할 수 있으며, 혹은 Linux Kernel에 최적화된 표준 네트워크 파이프라인을 사용할 수 있다. Calico의 네트워킹 옵션은 대부분의 환경에서 굳이 Overlay 를 사용하지 않고 실행이 가능할만큼 충분이 유연하며, 패킷의 encap/decap , overheads 를 방지한다. Calico 의 Control plane과 policy engine 은 수년간의 운영환경에서의 튜닝으로 CPU 사용량과 CPU 점유를 최소화하도록 개발되었다. 

 

Scalability [확장성]

Calico’s core design principles leverage best practice cloud-native design patterns combined with proven standards based network protocols trusted worldwide by the largest internet carriers. The result is a solution with exceptional scalability that has been running at scale in production for years. Calico’s development test cycle includes regularly testing multi-thousand node clusters. Whether you are running a 10 node cluster, 100 node cluster, or more, you reap the benefits of the improved performance and scalability characteristics demanded by the largest Kubernetes clusters.

-> Calico Core의 핵심 디자인 원칙은 가장 큰 인터넷 통신 사업자 기준의 전 세계적으로 신뢰하고, 인증된 표준 기반의 네트워크 프로토콜을 통한 클라우드 네이티브 설계를 활용한다. Calico 개발은 수천 개의 노드 클러스터를 정기적으로 테스트하는 과정이 존제한다. 10개의 노드, 100개의 노드 그 이상의 Kubernetes Cluster에서 요구하는 성능 및 확장성의 이점을 가져갈 수 있다. 

 

Interoperability [운영 이점]

Calico enables Kubernetes workloads and non-Kubernetes or legacy workloads to communicate seamlessly and securely. Kubernetes pods are first class citizens on your network and able to communicate with any other workload on your network. In addition Calico can seamlessly extend to secure your existing host based workloads (whether in public cloud or on-prem on VMs or bare metal servers) alongside Kubernetes. All workloads are subject to the same network policy model so the only traffic that is allowed to flow is the traffic you expect to flow.

-> Calico는 Kubernetes workload와 비 kubernetes workload 혹은 Legacy workload 와의 원활하고 안전한 통신을 보장한다. Kubernetes의 host base(public cloud, private cloud, bare metal server)를 원활하게 확장이 가능하다.  모든 워크로드는 동일한 네트워크 정책모델을 적용받는다. 

 

Real world production hardened [사용 사례]

Calico is trusted and running in production at large enterprises including SaaS providers, financial services companies, and manufacturers. The largest public cloud providers have selected Calico to provide network security for their hosted Kubernetes services (Amazon EKS, Azure AKS, Google GKE, and IBM IKS) running across tens of thousands of clusters.

-> Calico는 수많은 환경에서 선택받았다. (위의 벤더 사들 참조, 거의 모든 Kubernetes cluster를 제공하는 업체에서 사용 가능한 옵션이다)

 

Full Kubernetes network policy support [k8s 지원]

Calico’s network policy engine formed the original reference implementation of Kubernetes network policy during the development of the API. Calico is distinguished in that it implements the full set of features defined by the API giving users all the capabilities and flexibility envisaged when the API was defined. And for users that require even more power, Calico supports an extended set of network policy capabilities that work seamlessly alongside the Kubernetes API giving users even more flexibility in how they define their network policies.

-> kubernetes 기본 api를 지원할뿐더러, 그 외 추가 기능에 대해서 CRD를 통해 지원

 

Contributor community [커뮤니티]

The Calico open source project is what it is today thanks to 200+ contributors across a broad range of companies. In addition Calico is backed by Tigera, founded by the original Calico engineering team, and committed to maintaining Calico as the leading standard for Kubernetes network security.

-> 200명 이상의 Contributor의 기여를 통해 탄생하였으며, Calico 엔지니어링 팀의 설립한 Tigera의 지원을 받는다. Kubernetes의 네트워크 보안의 표준으로 유지되기 한 방향성을 가진다. 

 

 

PS. Calico는 Kubernetes의 범용적인 CNI 로 선택하기에 알맞은 선택이다. (아무것도 모를때 사용해도 전혀 문제가 없다)

Kubernetes 의 네트워크를 공부하기 위한 수단으로 Calico를 선택하는 것은 좋은 선택으로 생각된다.

'kubernetes > CNI Calico' 카테고리의 다른 글

About - Network Standard study Link  (0) 2021.08.03

+ Recent posts