글로벌 네트워크 셋(Global network set)
GlobalNetworkSet은 네임스페이스에 속하지 않는 클러스터 범위의 IP 서브넷/CIDR 집합을 정의하는 리소스예요. Calico가 관리하지 않는 외부 네트워크 트래픽에 정책을 적용할 때 유용합니다. 이 문서는 GlobalNetworkSet의 개념, YAML 예제, 스펙 정의를 소개해요.
출처: 문서
본문
글로벌 네트워크 셋 리소스(GlobalNetworkSet)는 임의의 IP 서브넷/CIDR 집합을 나타내며, Calico 정책으로 매칭될 수 있어요. 네트워크 셋은 Calico가 관리하지 않는 외부 네트워크에서 오거나 그쪽으로 가는 트래픽에 정책을 적용할 때 유용합니다.
각 네트워크 셋의 메타데이터에는 라벨 집합이 포함돼요. Calico가 글로벌 네트워크 정책 규칙 안의, 또는 namespaceSelector에 global()이 포함된 네트워크 정책 규칙 안의 소스/목적지 셀렉터에 매칭되어야 할 IP 집합을 계산할 때, 그 셀렉터에 매칭되는 네트워크 셋들의 CIDR을 포함시킵니다.
참고: Calico는 패킷의 소스/목적지 IP 주소를 기준으로 매칭하기 때문에, Calico가 활성화된 노드와 네트워크 셋에 나열된 네트워크 사이에 NAT가 있으면 규칙이 의도대로 동작하지 않을 수 있어요. 예를 들어 Kubernetes에서 서비스 IP로 들어오는 트래픽은 도착 호스트에 도달하기 전에 kube-proxy가 SNAT하는 것이 일반적이라, Calico의 워크로드 정책은 실제 소스 대신 kube-proxy가 돌던 호스트의 IP를 소스로 봅니다.
샘플 YAML
apiVersion: projectcalico.org/v3
kind: GlobalNetworkSet
metadata:
name: a-name-for-the-set
labels:
role: external-database
spec:
nets:
- 198.51.100.0/28
- 203.0.113.0/24
글로벌 네트워크 셋 정의
메타데이터
| Field | Description | Accepted Values | Schema |
|---|---|---|---|
| name | The name of this network set. | Lower-case alphanumeric with optional - or -. |
string |
| labels | A set of labels to apply to this endpoint. | map |
스펙
| Field | Description | Accepted Values | Schema | Default |
|---|---|---|---|---|
| nets | The IP networks/CIDRs to include in the set. | Valid IPv4 or IPv6 CIDRs, for example "192.0.2.128/25" | list |
더 알아보기 (Learn more)
GlobalNetworkSet은 네임스페이스와 무관하게 클러스터 전체에서 참조할 수 있는 CIDR 묶음이에요. GlobalNetworkPolicy에서 쓰거나, global()을 네임스페이스 셀렉터에 넣은 NetworkPolicy에서 참조할 수 있습니다.