본문 바로가기
클라우드/AWS

[AWS] EKS Network (실습- 파드간 통신) - 2주차

by Cloud_Park 2023. 5. 2.

[AWS] EKS Network (실습- 파드간 통신) - 2주차

2023.05.02 - [클라우드/AWS] - [AWS] EKS 실습 ( 원클릭으로 생성하기 ) - 2 주차

2023.05.02 - [클라우드/AWS] - [AWS] EKS Network (실습- 네트워크 기본 정보 확인) - 2주차

 

 

 

파트간 통신을 할 때 AWS VPC CNI는 어떻게 통신이 되는 지 확인해보자 .

칼리코와 같은 기존 온프램 CNI는 파트 간 통신(다른 워커노드)하게되면 Clouster IP를 캡슐화하여 목적지 워커노드에서 디캡슐화를 진행하는 과정이 필요하다.

AWS VPC CNI는 캡슐화는 진행되지 않아 보다 빠르다는 장정이 있다는 것을 선행하고 실습 진행하겠다.

 

테스트 시 TCPDUMP를 떠서 어떤 인터페이스를 통해가는지 확인 

아래 사진으로 테스트 진행 예정이다.

참고자료 : https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/cni-proposal.md

 

실습 파트간 통신 테스트 > 별도 NAT 동작이 없이 통신

명령어

더보기
# 파드 IP 변수 지정
PODIP1=$(kubectl get pod -l app=netshoot-pod -o jsonpath={.items[0].status.podIP})
PODIP2=$(kubectl get pod -l app=netshoot-pod -o jsonpath={.items[1].status.podIP})
PODIP3=$(kubectl get pod -l app=netshoot-pod -o jsonpath={.items[2].status.podIP})

# 파드1 Shell 에서 파드2로 ping 테스트
kubectl exec -it $PODNAME1 — ping -c 2 $PODIP2

# 파드2 Shell 에서 파드3로 ping 테스트
kubectl exec -it $PODNAME2 — ping -c 2 $PODIP3

# 파드3 Shell 에서 파드1로 ping 테스트
kubectl exec -it $PODNAME3 — ping -c 2 $PODIP1

# 워커 노드 EC2 : TCPDUMP 확인 - 왜지???? 패킷 덤프 확인이 되나요?
sudo tcpdump -i any -nn icmp
sudo tcpdump -i eth1 -nn icmp
sudo tcpdump -i eth0 -nn icmp

[워커 노드1]
# routing policy database management 확인
ip rule

# routing table management 확인
ip route show table local

# 디폴트 네트워크 정보를 eth0 을 통해서 빠져나간다
ip route show table main
default via 192.168.1.1 dev eth0
…

Pod 1에서 Pod 2로  ping 2번을 보내 패킷이 전달되는 것을 확인

* 테스트 사진 interface any

* 테스트 사진 interface : eth 0,1 구분하여 진행

결과 : eth0을 통해 나간다는 것을 확인 

 

eth0으로 가는 이유를 확인 가능하다.

워커노드에서

$ ip rule 하면 main 테이블로 전달

$ ip route show table main   > eth0