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
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
해당 옵션을 찾아보게 된 계기는 Data Plane(Worker Node)의 다중 네트워크 인터페이스 환경에서 Calico를 이용할 때, 라우팅 정보가 잘못 잡히는 현상을 확인했었고, 문제를 해결하면서 알게되었다..
인터페이스를 제외하고 Ip 대역으로도 지정이 가능하고 보다 다양한 옵션들이 존재하기 때문에 필요에 맞춰서 지정하여 사용하면 될 것 같다.
반응형