최대 1 분 소요

CNI weave

  • 다른 노드에 있는 파드간의 통신을 위해서 라우팅 테이블로는 100개가 넘는 노드의 네트워크와 게이트웨이를 일일이 정의하기란 쉽지 않다.
  • 이 문제를 해결하기 위해 CNI Plugin이 필요하다.
  • weave는 각 노드에 agent를 배치한다. 이 agent들은 서로 연결되어 있고, 특정 노드에서 나가는 패킷을 agent가 가로챈다.
  • agent들은 대상 주소화 어느 노드에 위치하는지 알고 있다. 노드에 자체 bridge를 만들고 이름을 지정함
  • 그리고 이 패킷을 한번 포장 한 다음 전달 후 전달 받은 측에서 이 패킷을 풀어서 원본을 파드에게 전달한다.
  • agent끼리 연결 되어 있고 이를 위해 CNI Plugin이 이러한 네트워크를 담당해주기 때문이다.

Devploy Weave

  • weave는 수동으로 클러스터 내 명령을 통해 서비스나 데몬으로 각 노드에 배포될수 있다.
  • 만약 클러스터에 mater노드와 worker노드에 배포되어 있고, control plan component가 배포되있다면 weave를 배포 할 수 있다.
kubectl apply -f -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')
  • weave peers라고 하는 데몬셋 배포

IPAM(IP Address Managerment)

  • k8s는 IP주소 관리를 CNI가 담당한다.
  • CNI Plugin의 책임 중 파드에 대한 IP 주소를 관리해야만 하는 책임이 있다.
  • 각각의 노드는 IP List를 가지고 있으며 중복되지 않게 관리한다.
  • IP List는 CNI 플로그인 중 DHCP, host-local로 관리
$ cat /etc/cni/net.d/net-script.conf
> "ipam" : subnet 확인

댓글남기기