스터디

[KANS 3기] 3주차 Calico 네트워크 모드와 접근통제(3/3)

엔지니어-여리 2024. 9. 21. 23:32
반응형

Calico 네트워크 모드

 

칼리코는 다양한 네트워크 모드를 제공합니다.

 

 

IPIP 모드 (기본설정)

이전 글에서 다뤘던 내용인 만큼 생략하도록 하겠습니다.

https://yeoli-tech.tistory.com/44

 

[KANS 3기] 3주차 Calico CNI (2/3)

Calico(이하 ”칼리코“) 알아보기Calico에 대한 공식 문서의 설명에 따르면, calico는 네트워크, 보안 솔루션으로 이용된다고 합니다.Calico is a networking and security solution that enables Kubernetes workloads and no

yeoli-tech.tistory.com

 

- 같은 노드 내에서는 파드간 통신시 직접 통신합니다.

- 다른 노드에서 파드간 통신은 tunl0 인터페이스를 사용하고 IPIP 프로토콜로 통신합니다. 

- 다른 노드의 ip 대역은 BGP로 전달 받은 다음 호스트의 라우팅테이블에 업데이트 됩니다.

Direct 모드

- IPIP 모드와 달리 파드 통신이 출발지 노드의 라우팅 정보를 확인해 목적지 노드로 원본 그대로 전달합니다.

- AWS에서 이 모드를 사용하려면 다음과 같이 Source/Destination Check 기능을 Disable 해야합니다.

 

# IPIP 모드 비활성화
calicoctl get ippool default-ipv4-ippool -o yaml | sed -e "s/ipipMode: Always/ipipMode: Never/" | calicoctl apply -f - 

# IPIP 모드 활성화
calicoctl get ippool default-ipv4-ippool -o yaml | sed -e "s/ipipMode: Never/ipipMode: Always/" | calicoctl apply -f -

 

VXLAN 모드

- Flannel CNI에서 한 번 다뤘습니다. https://yeoli-tech.tistory.com/42#%EB%AA%A8%EB%93%9Cmode

 

[KANS 3기] 2주차 스터디 내용 정리

쿠버네티스 환경 구성하기스터디에서는 각자 환경 (Window, Mac)에서 쿠버네티스 클러스터를 구성했다. 쿠버네티스 클러스터를 구현하기 위해 KIND를 활용했으나 (kind 내용은 다른 스터디원들이나

yeoli-tech.tistory.com

- BGP를 사용하지 않고, VXLAN L3 라우팅을 통해서 동작 합니다.

 

Pod 패킷 암호화

- 파드간 통신이 암호화되어야 하는 경우에 사용할 수 있습니다.

- 파드간 통신시 wireguard tunnel을 통해 트래픽이 암호화되어 전달됩니다.

 

네트워크 접근 통제

 

- 네트워크 정책은 클러스터 내부에서 파드간 통신에 대해 트래픽 규칙을 정의하는 걸 말합니다.

- 네트워크 정책을 정하지 않는 경우, 모든 파드간에는 서로 통신이 가능합니다.

- 네트워크 정책은 기본적으로 차단입니다.

 

네트워크 정책 대상

- 네트워크 정책이 적용될 대상은 다음과 같이 결정될 수 있습니다.

- 특정 pod, 특정 namespace, 특정 ip block

 

 

네트워크 정책 예시

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: sample-networkpolicy
  namespace: default # 보안 정책을 생성할 네임스페이스 지정
spec:
  podSelector:
    # 설정할 대상 파드를 여기에 기입
    # 레이블 셀렉터이므로 복수의 파드를 대상으로 할 수 있음.
  policyTypes:
  - Ingress # 인그레이스 룰을 생성하는 경우 명시
  - Egress # 이그레스 룰을 생성할 경우 명시
  ingress:
  - from:
      # 인그레스 룰을 여기에 기입(이그레스 룰과 형식은 동일)
    ports:
      # 이 인그레스 룰로 허가할 수신 포트 번호와 프로토콜 기입
  egress:
  - to:
      # 이그레스 룰을 여기에 기입(인그레스 룰과 형식은 동일)
    ports:
      # 이 이그레스 룰로 허가할 송신 포트 번호와 프로토콜 기입

 

 

 

리소스 정리

- 다쓴 리소스는 꼭 삭제해주세요.

- cloudformation에서 리소스를 삭제하면 됩니다.

- 다 쓴 리소스는 반드시 삭제 후 삭제되었는지 확인해보세요.

 

반응형