728x90

CNI
- Container Network Inferface로 컨테이너 간 네트워크를 구성
- 다양한 CNI가 존재( Flannel, Calico, Cilium, Weave Net, AWS VPC )
AWS VPC CNI
- Node와 Pod의 IP 대역이 같아 직접 통신이 가능하여 네트워크 통신의 최적화(성능, 지연)
- VPC 와 통합 : VPC Flow logs , VPC 라우팅 정책, 보안 그룹(Security group) 을 사용 가능함
- VPC ENI 에 미리 할당된 IP(=Local-IPAM Warm IP Pool)를 파드에서 사용할 수 있음


Node Network 정보
- aws-node(cni)와 kube-proxy는 Node의 Root Net Namespace를 사용
- aws-node와 kube-proxy의 경우 Node의 IP를 그대로 사용

- core-dns의 경우 Per Pod Net Namespace를 사용
- core-dns는 Node의 IP가 아닌 별도의 IP를 사용
- coredns 파드는 veth 으로 호스트에는 eniY@ifN 인터페이스와 파드에 eth0 과 연결


- t3.medium 의 경우 ENI 마다 최대 6개의 IP를 가질 수 있다
- ENI0, ENI1 으로 2개의 ENI는 자신의 IP 이외에 추가적으로 5개의 보조 프라이빗 IP를 가질수 있다

- Pod 생성 시, Pod IP가 각 노드에 라우팅 테이블에 설정
# [터미널1~3] 노드 모니터링
ssh ec2-user@$N1
watch -d "ip link | egrep 'ens|eni' ;echo;echo "[ROUTE TABLE]"; route -n | grep eni"
ssh ec2-user@$N2
watch -d "ip link | egrep 'ens|eni' ;echo;echo "[ROUTE TABLE]"; route -n | grep eni"
ssh ec2-user@$N3
watch -d "ip link | egrep 'ens|eni' ;echo;echo "[ROUTE TABLE]"; route -n | grep eni"
# 테스트용 netshoot-pod 디플로이먼트 생성
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: netshoot-pod
spec:
replicas: 3
selector:
matchLabels:
app: netshoot-pod
template:
metadata:
labels:
app: netshoot-pod
spec:
containers:
- name: netshoot-pod
image: nicolaka/netshoot
command: ["tail"]
args: ["-f", "/dev/null"]
terminationGracePeriodSeconds: 0
EOF

→ 각 Pod IP가 노드의 라우팅테이블에 추가 확인

728x90
'2025_AEWS Study' 카테고리의 다른 글
2주차 - EKS Networking(4)(Service & AWS LoadBalancer Controller) (0) | 2025.02.15 |
---|---|
2주차 - EKS Networking(3)(노드 내 파드 생성 갯수 제한) (0) | 2025.02.15 |
2주차 - EKS Networking(2)(노드 간 파드 통신/파드 외부 통신) (1) | 2025.02.15 |
1주차 - EKS Endpoint Access (0) | 2025.02.08 |
1주차 - Amzaon EKS 설치 및 기본 사용 (0) | 2025.02.08 |