• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

Calico 를 사용한 서비스 네트워크 아키텍처 관련 질문 드립니다.

21.02.15 11:20 작성 조회수 415

1

안녕하세요,

Networking - Pod / Service Network(Calico), Pause Container 강의에서 서비스 네트워크를 Calico 와 함께 설명해주셨는데요. 프록시 모드에서는 나왔던 iptables의 역할이 Calico 플러그인을 사용한 서비스 네트워크 설명(13분 40초 부근 부터 시작)에서는 보이지 않는데요.

Calico는 자체 라우팅 테이블을 통해 파드 네트워킹을 처리하고 iptables를 사용하지 않는 것인가요? 구글링에서는 Calico도 iptables을 사용하는걸로 나와 있어서 좀 헷갈리는 부분이 있어서 이 부분에 대해 보충 설명 해주시면 감사하겠습니다.

답변 4

·

답변을 작성해보세요.

2

안녕하세요!

좋은 질문 감사합니다.

Route 안에 [NAT] 가 iptables 입니다.

설명이 좀 부족했네요.

Calico가 nat의 용도로 iptable을 사용합니다.

아래 그림으로 자료실엔 이미지 수정해서 지금 다시 올렸고요.

그리고 추가적인 내용은 아래 url도 참고 바랍니다.

https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/6e4619c416ff4bd19e1c087f27a43eea/www-assets-prod/presentation-media/k8s-calico-v1.0.pdf

저도 네트워크 전문가는 아니라서, 더 자세한 설명에는 한계가 있네요^^;

감사합니다.

1

말씀하신 설치시에 pod-network-cidr로 준 CIDR이 kube-controller-manager의 설정에 들어감니다.

오히려 지금 설치하신 로컬에 cidr이 다르게 들어갔다고 하시는게 이상한데요??

저는 제 가이드에 있는데로 설치시에 pod-cidr을 20.96.0.0/12로 주었고 아래와 같이 세팅되었습니다.

1

감사합니다. 충분히 설명 되었습니다. 죄송하지만 네트워킹 관련 질문 하나만 더 드리려고 합니다. ^^;

파드 네트워크의 ip 대역은 kubeadm 을 통한 쿠베 설치시에 --pod-network-cidr 에서 정해주는 걸로 알고 있습니다. 

그런데 쿠버네티스 문서를 보면 kube-proxy와 kube-controller-manager에서 --cluster-cidr 파라미터를 통해 파드의 CIDR을 받는 걸로 나와 있어서요.

https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/ 

https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/ 

그럼 설치시에 --pod-network-cidr로 준 CIDR이 사실 상 kube-proxy와 kube-controller-manager 의 cluster-cidr 파라미터에도 쓰이는 것인지, 그게 아니라면 kube-proxy와 kube-controller-manager의 --cluster-cidr 값은 내부적인 우선 순위 규칙에 의해서 서로 override 되는 것인지 궁금합니다.. 사실 제 로컬에 설치된 쿠버네티스의 kube-proxy와 kube-controller-manager의 cluster-cidr값이 실제 생성되는 파드의 CIDR과 달라서 좀 혼란 스러워서요. 지엽적인 질문인 걸 알지만 궁금한 지점이 혼자서는 도저히 해결 되지 않아 답답한 마음에 질문 드립니다. ^^;; 

0

아 그렇군요.. 제 설정 부터 다시 찬찬히 뜯어 봐야 겠네요. 답변 감사드립니다!