특징
IP 가 고정되지 않고 한 번 쓰면 버림
파드가 새로 생성되면 아이피가 달라질 수 있다.
같은 네트워크 네임스페이스와 볼륨을 가집니다.
실제론 레플리카셋, 디플로이먼트에서 관리되지만 최소 배포 단위다.
파드 내부에선 브릿지 통신 (컨테이너들이)
파드는 같은 노드 안의 다른 파드에 접근 가능
서비스 인그레스를 통해 커베 클러스터 외로도 갈 수 있다.
클러스터아이피 : 클러스터 내부에서 다루는 아이피 (사설 아이피 냄새)
노드포트 : 외부와 연결될 노드포트 (30000번대 를 사용)
externalName : 외부 DNS 레코드와 내부 DNS 레코드를 매핑한다.
로드밸런스 : 로드밸런스는?! 로드밸런스다. ...
Selector : 라벨을 기준으로 트래픽 보낼 파드들을 구분
port/target port : 서비스로 들어오는 포트와 파드의 내부 포트를 매핑
DNS 통합 : 클러스터 내부에서 사용하는 DNS 로 서비스 주소를 해석 가능
인그레스를 통해 외부 트래픽을 받고 이게 서비스에 들어간다. 이 서비스는 클러스터 아이피를 가지며 변경되지 않아 고정 아이피처럼 사용할 수 있다 그리고 로드밸런싱을 통해 파드들에게 전달하고 파드들은 라벨 셀렉터를 통해서 할 수 있다. 서비스는 DNS 로 해석도 가능하다. 복잡한 구조에서 변하지 않는 것은 정말 소중한것 같다.
새로운 파드로 이어질 수 있는 환경을 만들어준다.
워커노드 kubelet 가 파드를 생성하란 명령어 받는다.
도로를 만들어야하는데..
우선 cni 플러그인에 진입하면 가상 이더넷을 만들고 브릿지가 생성되고 아이피테이블을 생성하고 파드와 연결할 수 있는 환경을 구축한다.
(요구사항에 맞게 네트워크 인터페이스를 생성)
Calico
으악! 진짜 넘! 어렵다! 으악!
클라우드 네이티브 환경에서 네트워크 설정과 네트워크 보안을 제공하는 오픈소스 프로젝트.
L3 라우팅을 방식을 사용하며 IP 계층에서 파드간 통신을 단순히 하며 확장성 있게 한다.
eBPF 모드 지원 (높은 성능 , 유연성을 제공하며 다양한 기능 제공.. 어우 어려워)
Felix 는 에이전트로 라우팅, 네트워크 보안 설정(iptables, ) 을 담당한다.
Typha 는 대규모 클러스터에서 etcd 로의 접근을 최소화하기 위한 캐시 레이어? (팬아웃 감소 효과)
BGP (Border Gateway Protocol) 노드 간 BGP 를 통해 라우팅 정보를 교환하여 L3 라우팅 방식으로 처리한다..
(네트워크 지식이 너무 부족하다... )
L7 스위치를 지향해 패스와 도메인으로 라우팅이 가능하며 HTTPS, TLS 가 가능하다.
스위치와는 Nodeport, clusterIp, 로드밸런스 타입, 를 통해서 상호작용한다
DNS 는 도메인을 통해서 라우팅할 때 아이피 주소로 도메인 매핑이 필요할 때 사용한다.
칼리코는 파드와 파드, 노드와 파ㅏ드 사이 통신을 위해 사용한다 그리고 L3, 4 수준에서 트래픽 차단이 가능하다 (NetworkPolicy)
인그레스 는 클러스터 외부 -> 클러스터 내부를 위해 사용
L7 레벨에서 적절한 service로 라우팅한다.