본문 바로가기
쿠버네티스,도커

calico 동작

by 흰색남자 2022. 10. 3.

https://velog.io/@200ok/Kubernetes-Calico-CNI-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

[Kubernetes] Calico CNI 동작원리 이해하기

Kubernetes Advanced Networking Study(KANS)의 3주차 내용을 학습하며 정리한 내용입니다.

velog.io

 

 

 

 

데몬셋으로 각 노드에 calico-node 파드가 동작하여, 해당 파드에 bird, felix, confd 등이 동작 + Calico 컨트롤러 파드는 디플로이먼트로 생성

  • Calico의 특징은 BGP를 이용해 각 노드에 할당된 Pod 대역의 정보를 전달한다. 즉, 쿠버네티스 서버뿐만 아니라 물리적인 라우터와도 연동이 가능 하다는 뜻이다. (Flannel의 경우 해당 구성 불가)
  • Calico Pod 안에서 Bird라고 하는 오픈소스 라우팅 데몬 프로그램이 프로세스로 동작하여 각 Node의 Pod 정보가 전파되는 것이다.
  • 이후 Felix라는 컴포넌트가 리눅스 라우터의 라우팅 테이블 및 iptables rule에 전달 받은 정보를 주입하는 형태이다.
  • confd는 변경되는 값을 계속 반영할 수 있도록 트리거 하는 역할이다.

 

 

 

 

ConfD

calico-node 컨테이너 안에서 동작하는 간단한 설정관리 툴입니다. 데이터 저장소로부터 BIRD 설정값을 읽어들이고 디스크 파일로 쓰기 작업도 수행합니다. 네트워크와 서브네트워크에 설정값을 반영하고(CIDR 값) BIRD 데몬이 이해할 수 있도록 설정값들을 변환

 

 

data store ( etcd ): 분산 키 / 벨류 스토어

구성에 필요한 정보, 네트워크의 정보, 칼리코 설정정보 등

키 : 벨류가 바뀔 경우 펠릭스에게 전달하는 커뮤니케이션 버스역할도 수행

관리자가 calicoctl에 접근하기 위한 접근점

 

brid // BIRD는 각 노드마다 존재하는 BGP 데몬

이 데몬은 다른 노드에 있는 BGP 데몬들과 라우팅 정보를 교환

노드 간의 BGP 세션을 설정하고 경로를 공유함

라우팅 테이블에 추가된 POD IP를 다른 NODE에 전파 ( ADVERTISE )

파드가 라우팅 테이블에 추가되면 버드에 의해 다른 쿠버네티스 노드에 전달됨.

풀 메쉬 구조임.  

 

BGP는 서로 다른 자율 시스템(AS)의 라우터 간에 라우팅 정보를 교환하는 데 사용되는 외부 게이트웨이 프로토콜(EGP)

경계 경로 프로토콜은 인터넷에서 주 경로 지정을 담당하는 프로토콜의 한 종류이다. 인터넷에서 목적지까지 경유하는 자율 시스템 중 라우팅 및 자율 시스템의 순서를 전송하기 위해 설계된 경로 지정 알고리즘

 

 

Felix / 펠릭스

.ETCD에서 제공된 정책을 적용. 

네트워크 정보 수집.

노드의 상태, 네트워크 관리

 

IPAM // Internet Protocol Address Management

각 대역?? 논리구역??별로 어떤 대역의 IP를 할당할 것인가를 관리함

 

 

IP(Internet Protocol) 란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 · 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소