여러 IP 풀 만들기
Calico는 기본 설치 시 IPv4 풀 하나를 만들지만, 필요에 따라 여러 IP 풀을 추가로 구성할 수 있어요. 이 문서에서는 설치 시점 또는 운영 중인 클러스터에서 추가 IP 풀을 만드는 방법을 소개합니다. 분리된 주소 범위, IPv6, 토폴로지 기반 주소 할당 같은 용도에 활용할 수 있어요.
출처: 문서
본문
여러 IP 풀 이해하기
Calico를 설치하면 기본적으로 IPv4 풀 하나가 만들어져요. 이 IP 풀은 파드에 IP 주소를 할당하고, 필요하다면 클러스터 내부의 터널에도 사용됩니다.
때로는 추가 IP 풀을 구성하고 싶을 수 있어요. 예를 들면:
- 클러스터에서 파드가 쓸 수 있는 IP 주소 공간이 분리(disjoint)되어 있을 때
- 클러스터 토폴로지 기반으로 IP 주소를 할당하고 싶을 때
Calico 설치 시 여러 IP 풀 만들기
Tab: Operator
custom-resources.yaml 안의 Installation 리소스를 편집해 여러 개의 고유한 IP 풀을 포함시킬 수 있어요. 다음 예제는 서로 다른 노드 집합에 할당되는 두 개의 IP 풀을 만듭니다.
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
name: default
spec:
calicoNetwork:
ipPools:
- name: pool-zone-1
cidr: 192.168.0.0/24
encapsulation: VXLAN
nodeSelector: "zone == 'zone-1'"
- name: pool-zone-2
cidr: 192.168.1.0/24
encapsulation: VXLAN
nodeSelector: "zone == 'zone-2'"
Calico를 설치한 뒤에는 다음 명령으로 IP 풀이 만들어졌는지 확인할 수 있어요:
kubectl get ippools
오퍼레이터가 IP 풀을 관리하지 않도록 하기
어떤 경우에는 오퍼레이터 내부의 IP 풀 관리를 비활성화하고, 대신 calicoctl이나 kubectl로 IP 풀을 만들고 지우고 싶을 수 있어요. 그렇게 하려면 custom-resources.yaml의 Installation 리소스를 편집해 빈 IP 풀 목록을 지정하면 됩니다.
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
name: default
spec:
calicoNetwork:
ipPools: []
이 구성에서는 오퍼레이터가 Calico 컴포넌트를 설치하기 전에 IP 풀을 만들 때까지 기다려요.
Tab: Manifest
매니페스트로 Calico를 설치할 때는 calicoctl로 여러 IP 풀을 관리할 수 있어요. 완전한 제어를 원한다면 그 전에 기본 IP 풀 생성을 비활성화하세요.
-
calico.yaml의 calico-node DaemonSet에 다음 환경 변수를 추가해 기본 IP 풀을 비활성화합니다.env: - name: NO_DEFAULT_POOLS value: "true"
1. 그다음 `calico.yaml`을 설치합니다.
1. 원하는 IP 풀을 만듭니다. 예를 들어 다음 명령들은 서로 다른 노드 집합에 할당되는 두 개의 IP 풀을 만들어요.
```bash
calicoctl create -f -<<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: pool-zone-1
spec:
cidr: 192.168.0.0/24
vxlanMode: Always
natOutgoing: true
nodeSelector: zone == "zone-1"
EOF
calicoctl create -f -<<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: pool-zone-2
spec:
cidr: 192.168.1.0/24
vxlanMode: Always
natOutgoing: true
nodeSelector: zone == "zone-2"
EOF
더 알아보기 (Learn more)
nodeSelector를 활용하면 존(zone)이나 하드웨어 특성별로 주소 공간을 나눌 수 있어요. 기본 풀을 비활성화하는 방법(NO_DEFAULT_POOLS 또는 빈 ipPools)도 상황에 맞게 선택하세요.