월루를 꿈꾸는 대학생

KNAS 3주차 _ 2 본문

Server&Network/Kubernets_Dokcer

KNAS 3주차 _ 2

하즈시 2022. 2. 3. 16:36
728x90

calico 네트워크 모드 

- ipip모드 : 원본 패킷이 ipip오버레이 기법으로 outer패킷에 감싸져서 통신됨

- direct 모드 : 오버헤드 없이 파드의 ip패킷이 그대로 다른 노드와 통신 , 성능이 좋음 

- vxlan 모드 :  오버헤드가 vxlan , bgp가 동작 불가 , flannel과 같은 방식 

- pod 패킷 암호화 : 와이어가드 기법으로 패킷 암호화 

 


Direct 모드 

- 파드 패킷이 노드 라우팅 정보를 보고 바로 목적지 노드로 원본 패킷 그대로 전달 

 

 

# 칼리코 모드 확인 

# 기본 ipip 모드 

 

# ipip 모드 변경 never로 변경 후 상태 확인 

# tunnel이 아닌 enp0s8로 통신 바로 빠져나감  

 

# 다이렉트 모드에서 자기들과 같은 대역의 노드끼리는 통신가능하지만 다른 네트워크 대역인 w0의 경우는 통신이 불가 

 

# 파드의 ip가 직접적으로 노출이 되어 있는 상태

# w0로 가려고 하면 rtr을 거쳐서 가야하는데 rtr의 라우팅 테이블엔 노드의 ip는 있지만 해당 파드의 정보가 없어서 패킷이 드랍당함 

# 오버레이에서는 노드의ip가 감싸져 있으니 통신이 잘 되었지만 다이렉트로 네트워크 오버레이 끄니까 파드 ip없어서 불가 

# 172 대역이 아예 없다 ! 

# 이런 경우 파드 대역을 rtr에 추가해주면 되지만,,, 파드 네트워크 대역은 수시로 삭제 추가 변경이 되기에 일일이 요청할 수 없어 오버레이를 쓰기도 함 -> 오버레이가 필요한 이유

 


CrossSubnet 모드 

- 노드 간 같은 네트워크 대역의 경우 Direct로 노드간 다른 네트워크는 ipip모드로 동작 하도록 해줌 

- 네트워크 팀 도움없이 가능하다

 

# 다른 네트워크 대역만 tunnel로 나가도록 설정됨 

 

파드들 간의 nat 없이 안정적인 네트워크 환경을 만들어주는 overlay 네트워크 

 

 


BGP 연동 

- K8S 클러스터 내부 네트워크와 idc 온프레미스 네트워크 대역간 BGP를 통해서 통신 

- 내부에 BGP가 도니까 칼리코의 POD 내역이 BGP로 사내 네트워크로 자동 전파가 됨 동적 라우팅 

- 사내 네트워크 추가 변경 삭제 및 쿠버네티스의 네트워크 추가 변경 삭제가 유기적으로 연동 가능 

 

#rtr의 온프레미스 네트워크라고 생각 10.1.1.0 - 10.1.2.0 대역 

 

# 칼리코 nat diable 설정 

# 모든 통신은 이제 라우팅 테이블 기반으로 

calicoctl get ippool default-ipv4-ippool -o yaml | sed -e "s/natOutgoing: true/natOutgoing: false/" | calicoctl apply -f -

 

cat <<EOF | calicoctl apply -f - apiVersion: projectcalico.org/v3 kind: BGPPeer metadata: name: bgppeer-rtr spec: peerIP: 192.168.10.254 asNumber: 64512 EOF

peerip는 라우터 ip 

 

# 마스터 쪽에 온프레미스단의 ip정보가 업데이트 됨 

# bgp를 통해 동적으로 추가됨 

# 이 상태라면 다이렉트 모드로 통신이 가능 

# 라우터 쪽도 파드 ip 확인 가능 

 

# 글로벌이 추가됨

# 온프레미스 쪽 물리적 장비 

 

# 설정 후 라우터에서 pod 쪽으로 통신이 원할하게 잘 됨 

# 사내 대역에서 쿠버네티스 쪽으로 통신이 잘 됨 

# 쿠버네티스에서 물리 라우터로 통신 가능 

 

 


 

pod 패킷 암호화 ( 네트워크 레벨 ) -wireguard 

 

- wireguard 터널을 자동 생성하여 파드 의 트래픽 암호화 가능 

- 칼리코에서 한줄로 세팅 가능 

calicoctl patch felixconfiguration default --type='merge' -p '{"spec":{"wireguardEnabled":true}}'

- 상대방을 peer로 인식하기에 ip 바껴도 끊기지 않음 

# 인터페이스 생성됨

 

 

# w1 -> w2 

 

# 패킷 확인시 암호화 되어 있고 프로토콜은 wiregurad

 

 

728x90

'Server&Network > Kubernets_Dokcer' 카테고리의 다른 글

KNAS Service (ClusterIP & NodePort)  (0) 2022.02.12
쿠버네티스 대시보드 삽질기  (0) 2022.02.06
KNAS 3주차_1  (0) 2022.02.02
KANS 2주차_2 PAUSE  (0) 2022.01.20
KNAS 2주차_1 Flannel  (0) 2022.01.20