본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

IP 예약

원문 보기 위키 갱신

IP 예약 (IP reservation)

IP 예약(IPReservation) 리소스는 Calico가 새 IP 주소를 자동으로 할당할 때 사용하지 않도록 지정하는 IP 주소들의 모음입니다. 이 리소스는 Calico IPAM을 사용할 때에만 적용됩니다. IP 풀 안의 특정 주소나 범위를 자동 할당 대상에서 제외해 두고 싶을 때 유용하게 쓸 수 있습니다.

출처: 문서

본문

IP 예약(IPReservation) 리소스(IPReservation)는 Calico가 새 IP 주소를 자동으로 할당할 때 사용하지 말아야 할 IP 주소들의 모음을 나타냅니다. 이 기능은 Calico IPAM을 사용 중일 때에만 적용됩니다.

예제 YAML

apiVersion: projectcalico.org/v3
kind: IPReservation
metadata:
  name: my-ipreservation-1
spec:
  reservedCIDRs:
    - 192.168.2.3
    - 10.0.2.3/32
    - cafe:f00d::/123

IP 예약 정의

메타데이터 (Metadata)

필드 설명 허용 값 스키마
name 이 IPReservation 리소스의 이름. 필수. ., _, -를 선택적으로 포함하는 영숫자 문자열. string

스펙 (Spec)

필드 설명 허용 값 스키마 기본값
reservedCIDRs CIDR 표기법으로 지정한 IP 주소 및/또는 네트워크의 목록 유효한 IP 주소(v4 또는 v6) 및/또는 CIDR의 목록 list

참고 사항

IPReservation 구현은 (일반적으로 훨씬 큰) IP 풀에서 소수의 IP 주소/CIDR을 예약하는 상황을 다루도록 설계되었습니다. IP 풀의 상당 부분을 예약하면(예: 10% 이상) Calico가 여유 IPAM 블록을 검색할 때 상당히 느려질 수 있습니다.

IPReservation은 모든 IPAM 할당 요청마다 참조되므로, 주소 하나당 IPReservation 리소스를 하나씩 여러 개 만드는 것보다 주소를 여러 개 담은 IPReservation 리소스 한두 개를 두는 편이 좋습니다.

IP 범위 안의 IP가 이미 사용 중인 상태에서 IPReservation을 생성하더라도, 해당 IP는 자동으로 풀에 반환되지 않습니다. 예약 검사는 자동 할당 시점에만 이루어집니다.

Calico는 특정 IP 주소의 사용을 강제하는 Kubernetes 어노테이션을 지원합니다. 이 어노테이션은 기존에 설정된 IPReservation보다 우선합니다.

Windows 노드가 IP 블록을 점유할 때는 내부 목적을 위해 각 블록의 처음 세 개 IP와 마지막 IP를 자동으로 할당합니다. 이러한 할당은 IPReservation으로 막을 수 없습니다. 다만 IPAM 블록 전체를 IPReservation으로 예약하면 Windows 노드는 그 블록을 점유하지 않습니다.

더 알아보기 (Learn more)

IPReservation은 IPAM 자동 할당에서 특정 주소를 제외해 두는 기능으로, 이미 사용 중인 주소에는 소급 적용되지 않는다는 점을 기억하세요. 예약 개수가 많아지면 IPAM 할당 성능에 영향을 줄 수 있으니, 되도록 리소스를 적게 유지하고 하나의 리소스에 여러 주소를 담는 것이 좋습니다.