Devops/Kubernetes

[Calico] Multiple Interface에서 특정 Network Interface만 사용 or 제외

dev_ss 2024. 11. 7. 14:41

 

 

 


 

 

 

https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart

 

Quickstart for Calico on Kubernetes | Calico Documentation

Install Calico on a single-host Kubernetes cluster for testing or development in under 15 minutes.

docs.tigera.io

 

 

Calico를 처음에 설치할 때, Tigera operator를 설치하고 이후 Custom Resource를 설치한다.

 

 

일반적인 상황에서는 이 부분을 수정할 일이 없다고 보나, 클러스터의 특정 제약 조건(IP 대역 지정 / 특정 인터페이스 사용 등)에 의해 수정할 일이 생긴다.

 

 

아래 내용은 Quickstart에 기입된 기본적인 Calico의 Custom Resource의 내용이다. 

 

# This section includes base Calico installation configuration.
# For more information, see: https://docs.tigera.io/calico/latest/reference/installation/api#operator.tigera.io/v1.Installation
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    ipPools:
    - name: default-ipv4-ippool
      blockSize: 26
      cidr: 192.168.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()

---

# This section configures the Calico API server.
# For more information, see: https://docs.tigera.io/calico/latest/reference/installation/api#operator.tigera.io/v1.APIServer
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:
  name: default
spec: {}

 

 

위를 기준으로 추가 / 수정 / 제거를 하면 된다.

 

 

 

다음 Ipv4에서 특정 네트워크 인터페이스만 사용한다는 옵션이다.


1. 특정 네트워크 인터페이스만 사용

 

apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    ipPools:
    - name: default-ipv4-ippool
      blockSize: 26
      cidr: 192.168.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()
    ## 추가된 부분 ##
    nodeAddressAutodetectionV4:
      # 사용할 인터페이스 정규식 표현
      interface: "enp0s3,enp0s4"

 

 


2. 특정 네트워크 인터페이스를 제외하고 사용

 

apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    ipPools:
    - name: default-ipv4-ippool
      blockSize: 26
      cidr: 192.168.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()
    ## 추가된 부분 ##
    nodeAddressAutodetectionV4:
      # 제외할 인터페이스 정규식 표현
      skipInterface: "eth.*"

 

 

 

 

아래 공식 레퍼런스에서 추가적인 정보를 확인할 수 있다.

 

https://docs.tigera.io/calico/latest/reference/installation/api

 

Installation reference | Calico Documentation

Installation API reference

docs.tigera.io

 

 

 


 

 

 

해당 옵션을 찾아보게 된 계기는 Data Plane(Worker Node)의 다중 네트워크 인터페이스 환경에서 Calico를 이용할 때, 라우팅 정보가 잘못 잡히는 현상을 확인했었고, 문제를 해결하면서 알게되었다..

 

 

 

인터페이스를 제외하고 Ip 대역으로도 지정이 가능하고 보다 다양한 옵션들이 존재하기 때문에 필요에 맞춰서 지정하여 사용하면 될 것 같다.

 

 

 


 

 

 

 

 

반응형