스터디 목차
- 1주차
- 컨테이너 격리 - https://malwareanalysis.tistory.com/248
- 네트워크 네임스페이스 - https://malwareanalysis.tistory.com/249
- 2주차
- Flannel CNI: https://malwareanalysis.tistory.com/254
- pause 컨테이너: https://malwareanalysis.tistory.com/255
- 3주차
- calico 기본 통신과정: https://malwareanalysis.tistory.com/256
- ccalico 모드: https://malwareanalysis.tistory.com/264
- 4주차
- service와 kube-proxy iptables모드: https://malwareanalysis.tistory.com/265
- 5주차
- coredns 동작이해: https://malwareanalysis.tistory.com/267
- MetalLB L2동작 이해: https://malwareanalysis.tistory.com/271
- MetalLB BGP동작 이해: https://malwareanalysis.tistory.com/272
- 6주차
- Ingress 컨셉 이해: https://malwareanalysis.tistory.com/277
- Ingress 동작 이해: https://malwareanalysis.tistory.com/278
- Ingress https 적용: https://malwareanalysis.tistory.com/283
- 7주차
- Cilium CNI 등장배경: https://malwareanalysis.tistory.com/288
- Cilium CNI 살펴보기: https://malwareanalysis.tistory.com/289
- Cilium CNI pod 통신: https://malwareanalysis.tistory.com/290
- Cilium CNI service 통신: https://malwareanalysis.tistory.com/292
- 7주차 과제: https://malwareanalysis.tistory.com/294
안녕하세요. 이 글은 facebook 쿠버네티스 그룹에서 올라온 "쿠버네티스 네트워크 스터디" 5주차 내용을 정리했습니다.
스터디 모집글: https://www.facebook.com/groups/k8skr/posts/3202691746679143
1. 7주차 두번째 주제
7주차 첫번째 주제는 Cilium CNI 살펴보기입니다.
2. 아키텍처
음.. 아직은 아키텍처를 깊게 이해하지 못해서 생략합니다. 나중에 글 수정을 위해 챕터를 남겨둡니다. 아키텍처를 이해하기 위해 BPF와 eBPF를 더 공부해야할 것 같습니다.
3. 기능
공식문서(https://cilium.io/blog/2020/11/10/ebpf-future-of-networking/)에서 3가지 기능을 수행합니다. 각 기능은 세부기능으로 분리되고 세부기능을 수행하기 위한 구성요소가 존재합니다. 세부기능은 공식문서에서 참고하시길 바랍니다.
- 네트워킹(Networking)
- 보안(Security)
- 옵저버빌리티(Observability)
4. 구성요소
기능을 수행하기 위해 4가지 구성요소가 있습니다. 자세한내용은 공식문서(https://docs.cilium.io/en/stable/concepts/overview/)를 참고하시길 바랍니다.
- Cilium
- agent: Cilium을 실행하기 위한 네트워크 정책, 설정 등을 수행합니다. 쿠버네티스에서는 데몬셋으로 실행되어 각 노드마다 pod로 실행되고 API서버를 이용하여 작업을 수행합니다.
- client: Cilium 명령어를 실행하기 위한 클라이언트 입니다.
- operator: 쿠버네티스 클러스터에 전체에 한번씩 수행되어야 하는 작업을 담당합니다.
- Hubble: 네트워크와 보안 모니터링 역할을 수행하며 server, relay, client, graphical UI로 구성되어 있습니다.
- eBPF: 네트워킹 처리를 담당합니다.
- Data Source: 각 노드간 실행하고 있는 cilium agent상태를 동기화 하기 위한 데이터를 저장합니다.
쿠버네티스에서 실행되고 있는 구성요소는 kube-system 네임스페이스에서 확인할 수 있습니다.
kubectl get po -n kube-system
5. 네트워크 모드
2022년 2월 기준 터널모드(VXLAN, GENEVE), native routing 총 2가지 네트워크 모드를 지원합니다.
6. 네트워크 인터페이스 확인
cilium_host와 cilium_net, cilium_vxlan의 세 가지 가상 인터페이스를 생성합니다.
cilium_net과 cilium_host는 veth쌍으로 파드의 게이트웨이 역할을 수행합니다. vxlan모드로 동작할 시 vxlan인터페이스가 생성됩니다. 파드가 생성되면 lxc인터페이스가 생성되어 파드와 연결됩니다.
참고자료
공백
'연재 시리즈' 카테고리의 다른 글
쿠버네티스 네트워크 스터디 7주차 - Cilium CNI service 통신 (0) | 2022.03.02 |
---|---|
쿠버네티스 네트워크 스터디 7주차 - Cilium CNI pod 통신 (0) | 2022.03.01 |
쿠버네티스 네트워크 스터디 7주차 - Cilium CNI 등장배경 (0) | 2022.03.01 |
쿠버네티스 네트워크 스터디 부록: calicoctl로 가상 인터페이스 목록 조회 (0) | 2022.02.23 |
쿠버네티스 네트워크 스터디 부록: 와이어샤크 패킷 흐름 시각화(Flow graph) (0) | 2022.02.23 |