Open utterances-bot opened 1 year ago
잊을만하면 보러옵니다. 진짜 쵝오..
커피고래님의 글 아주 재미있게 읽고 있습니다. 공부를 하면서 보고 있는데 문뜩 질문이 하나 생각났습니다. 그래서 결국 cni 와 kube-proxy 의 차이는 무엇일까??
아직 이해를 제대로 못한거 같지만.. cni 도 결국 파드 간 통신을 가능케 해주는 녀석이고, kube-proxy 도 netfilter 를 통해 파드 간 통신을 가능케 해주는 녀석이라고 이해하고 있습니다..
커피 고래님이 생각하시길 이 둘의 차이점은 무엇이라고 생각하시나요?? https://coffeewhale.com/k8s/network/2019/05/11/k8s-network-02/ 글에서 kube-proxy 에서 파드의 ip 주소를 가져오는데 이때 cni 는 무슨 역할을 하는 것일까요??
@kingbj940429 안녕하세요. 좋은 질문 감사합니다.
CNI는 Pod
간의 네트워킹을 담당합니다. 컨테이너간의 네트워킹을 가능하게 하는 가장 기본적인 컴포넌트입니다.
kube-proxy
는 Pod
간의 네트워킹이 가능한 네트워크 위에 Service
라는 리소스를 이용하여 Software LB를 제공하는 컴포넌트입니다. kube-proxy
의 역할은 Software LB의 가상 IP(ClusterIP)를 Upstream Pod
IP로 치환(혹은 매핑)해주는 역할을 담당합니다.
정확한 정의는 아니지만 이해를 돕기 위해 다음과 같이 생각해 볼 수 있습니다.
kube-proxy
: 가상 Loadbalancer(Service
) 기능을 구현하는 컴포넌트그럼 클러스터 내 서비스 없이 파드 to 파드 로 request 를 보낸다면, 여기서 kube-proxy 는 관여를 하지 않나요??
@kingbj940429
네, 맞습니다. 그런 경우에는 kube-proxy
가 관여하는 부분이 없습니다.
아 이제야 쿠버네티스 네트워크에 대한 퍼즐이 맞쳐지는 느낌입니다. 정말정말정말 진심으로 감사드립니다 :)
안녕하세요 커피고래님 블로그의 다른글들을 정주행하던중, Calico의 CNI에 대해 심도있게 다루신 글을보고 해결하지 못했던 질문을 조심스레 적어봅니다. 현재 온프레미스 클러스터에서 Pod들을 Nodeport로 서비스들을 오픈해둔 상태입니다. Pod들이 특정 서버에 요청을 보낼때 각 Node들(여러개의 IP)에서 보내는 요청들에 대한 처리를 하기 힘든상태라서, 한개의 IP에서 특정 서버에 요청을 날리고 응답받게하려면 어떤 설정들을 해볼 수 있을까요? (한개의 Deployment에 있는 하위 Pod들이 아닌 독립적인 Deployment들에서 해당 요청을 수행합니다) Calico Enterprise 에서는 Egress Gateway라는 기능을 제공하던데, 오픈소스 에디션에선 다른기능을 통해 해당 네트워크 구성을 할수있는지 궁금합니다.
@mjrodan1 님, 안녕하세요. 말씀하신 요구사항은 주로 DB ACL 설정을 위해 필요한 기능과 비슷해 보입니다. 저 같은 경우 좀 더 인프라 레벨에서 처리하였기 때문에 이 부분에 있어서는 저도 정확한 답변을 드리기가 힘들 것 같네요.(예를 들어, AWS 같은 경우 Security Group을 활용하는 등) 제가 알기론 cilium의 경우 Enterprise가 아닌 오픈소스로도 egress gateway 기능을 제공하는 것으로 알고 있습니다.(https://docs.cilium.io/en/v1.12/gettingstarted/egress-gateway) 한번 참고해 보시면 좋을 것 같습니다.
정말 좋은 글 잘 읽었습니다. 개인적으로 공부중인 사람인데 5대의 서버를 이용해서 쿠버네티스 클러스터를 구성했는데 한개의 노드만 ClusterIP 접근이 안되는 문제 즉, k8s dns에 연결이 안되는 문제가 발생했습니다. (telnet 10.96.0.10 53 명령어 입력 시 문제 서버만 연결이 안됨)
3대의 멀티 마스터 노드와 2개의 워커노드로 구성 crio/k8s(v1.24.1), flannel(v0.22.3)
위와 같은 상황에서는 어디가 문제라고 생각이 드시는지 고견을 부탁드립니다......
안녕하세요 @ChoiHwanMin 님.
K8s 네트워크 문제가 참 다양해서 해당 정보만을 가지고 판단하기가 상당히 힘들 것 같은데요...^^;; flannel 쪽 파드의 로그를 한번 찾아보시는 것을 권장 드립니다. 간혹 flannel에서 각 노드의 pod CIDR가 제대로 설정이 안되어서 비슷한 문제를 일으킨 적이 생각나네요. 그 외에 host network와 Pod, Service 네트워크의 CIDR가 서로 충돌이 없는지도 한번 확인 부탁 드립니다.
네트워크가 참 어려운 것 같습니다. 저도 많은 도움을 드리지 못해서 죄송합니다.
[번역]쿠버네티스 패킷의 삶 - #3 | 커피고래의 노트
쿠버네티스 패킷의 삶 #3에서는 Service 네트워크가 동작하는 방법에 대해 심층적으로 알아 봅니다.
https://coffeewhale.com/packet-network3