18장. NetworkPolicy [networking.k8s.io/v1]
- 설명
- NetworkPolicy는 일련의 Pod에 허용되는 네트워크 트래픽을 설명합니다.
- 유형
-
object
18.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| NetworkPolicySpec은 NetworkPolicy 사양을 제공합니다. |
18.1.1. .spec
- 설명
- NetworkPolicySpec은 NetworkPolicy 사양을 제공합니다.
- 유형
-
object
- 필수 항목
-
podSelector
-
속성 | 유형 | 설명 |
---|---|---|
|
| egress는 선택한 Pod에 적용할 송신 규칙 목록입니다. Pod(및 클러스터 정책)를 선택하는 NetworkPolicies가 없거나 트래픽이 Pod와 일치하는 모든 NetworkPolicy 오브젝트에서 하나 이상의 송신 규칙과 일치하는 경우 발신 트래픽이 허용됩니다. 이 필드가 비어 있으면 이 NetworkPolicy는 모든 발신 트래픽을 제한하고 선택한 Pod가 기본적으로 격리되도록만 사용됩니다. 이 필드는 1.8의 베타 수준입니다. |
|
| NetworkPolicyEgressRule은 NetworkPolicySpec의 podSelector와 일치하는 Pod가 없는 특정 트래픽 세트를 설명합니다. 트래픽은 포트 및 에 모두 일치해야 합니다. 이 유형은 1.8의 베타 수준입니다. |
|
| Ingress는 선택한 Pod에 적용할 수신 규칙 목록입니다. Pod(및 클러스터 정책)를 선택하는 NetworkPolicies가 없거나 트래픽 소스가 Pod의 로컬 노드인 경우 또는 podSelector가 Pod와 일치하는 모든 NetworkPolicy 오브젝트에서 하나 이상의 수신 규칙과 일치하는 경우 트래픽이 포드에 허용됩니다. 이 필드가 비어 있으면 이 NetworkPolicy는 트래픽을 허용하지 않습니다. 선택한 Pod가 기본적으로 격리되도록만 사용됩니다. |
|
| NetworkPolicyIngressRule은 NetworkPolicySpec의 podSelector와 일치하는 Pod에 허용되는 특정 트래픽 세트를 설명합니다. 트래픽은 포트 및 의 포트와 일치해야 합니다. |
| podSelector는 이 NetworkPolicy 오브젝트가 적용되는 Pod를 선택합니다. 수신 규칙 배열은 이 필드에서 선택한 모든 Pod에 적용됩니다. 여러 네트워크 정책에서 동일한 Pod 세트를 선택할 수 있습니다. 이 경우 각각에 대한 수신 규칙은 추가적으로 결합됩니다. 이 필드는 선택 사항이 아니며 표준 라벨 선택기 의미 체계를 따릅니다. 빈 podSelector는 이 네임스페이스의 모든 Pod와 일치합니다. | |
|
| policyTypes는 NetworkPolicy와 관련된 규칙 유형 목록입니다. 유효한 옵션은 ["Ingress"], ["Egress"] 또는 ["Ingress", "Egress"]입니다. 이 필드를 지정하지 않으면 수신 또는 송신 규칙의 존재 여부에 따라 기본적으로 설정됩니다. 송신 섹션이 포함된 정책은 송신에 영향을 미치는 것으로 간주되며( ingress 섹션이 포함되어 있는지 여부) 모든 정책( ingress 섹션이 포함되어 있는지 여부)은 수신에 영향을 미치는 것으로 간주됩니다. 송신 전용 정책을 작성하려면 policyTypes [ "Egress" ]를 명시적으로 지정해야 합니다. 마찬가지로 송신이 허용되지 않도록 지정하는 정책을 작성하려는 경우 "Egress"를 포함하는 policyTypes 값을 지정해야 합니다(이러한 정책에 송신 섹션이 포함되지 않고 기본값인 경우 [Ingress"]로 기본 설정됨). 이 필드는 1.8의 베타 수준입니다. |
18.1.2. .spec.egress
- 설명
- egress는 선택한 Pod에 적용할 송신 규칙 목록입니다. Pod(및 클러스터 정책)를 선택하는 NetworkPolicies가 없거나 트래픽이 Pod와 일치하는 모든 NetworkPolicy 오브젝트에서 하나 이상의 송신 규칙과 일치하는 경우 발신 트래픽이 허용됩니다. 이 필드가 비어 있으면 이 NetworkPolicy는 모든 발신 트래픽을 제한하고 선택한 Pod가 기본적으로 격리되도록만 사용됩니다. 이 필드는 1.8의 베타 수준입니다.
- 유형
-
array
18.1.3. .spec.egress[]
- 설명
- NetworkPolicyEgressRule은 NetworkPolicySpec의 podSelector와 일치하는 Pod가 없는 특정 트래픽 세트를 설명합니다. 트래픽은 포트 및 에 모두 일치해야 합니다. 이 유형은 1.8의 베타 수준입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 포트는 발신 트래픽의 대상 포트 목록입니다. 이 목록의 각 항목은 논리 OR를 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 포트와 일치합니다(포트로 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 목록의 하나 이상의 포트와 일치하는 경우에만 트래픽을 허용합니다. |
|
| NetworkPolicyPort는 트래픽을 허용하는 포트를 설명합니다. |
|
| to는 이 규칙에 대해 선택된 포드의 발신 트래픽의 대상 목록입니다. 이 목록의 항목은 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 대상과 일치합니다(대상에 의해 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 목록에서 하나 이상의 항목과 일치하는 경우에만 트래픽을 허용합니다. |
|
| NetworkPolicyPeer는 트래픽을/에서 허용할 피어를 설명합니다. 특정 필드 조합만 허용됩니다. |
18.1.4. .spec.egress[].ports
- 설명
- 포트는 발신 트래픽의 대상 포트 목록입니다. 이 목록의 각 항목은 논리 OR를 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 포트와 일치합니다(포트로 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 목록의 하나 이상의 포트와 일치하는 경우에만 트래픽을 허용합니다.
- 유형
-
array
18.1.5. .spec.egress[].ports[]
- 설명
- NetworkPolicyPort는 트래픽을 허용하는 포트를 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| endPort는 정책에 의해 설정된 경우 포트에서 endPort까지의 포트 범위가 허용됨을 나타냅니다. port 필드가 정의되지 않았거나 port 필드가 이름이 지정된 (문자열) 포트로 정의된 경우 이 필드를 정의할 수 없습니다. endPort는 포트보다 크거나 같아야 합니다. |
| port는 지정된 프로토콜의 포트를 나타냅니다. Pod에서 숫자 또는 이름이 지정된 포트일 수 있습니다. 이 필드를 제공하지 않으면 모든 포트 이름과 숫자와 일치합니다. 있는 경우 지정된 프로토콜 및 포트의 트래픽만 일치합니다. | |
|
| protocol은 트래픽이 일치해야 하는 프로토콜(TCP, UDP 또는 SCTP)을 나타냅니다. 지정하지 않으면 이 필드는 기본적으로 TCP로 설정됩니다.
가능한 열거 값: - |
18.1.6. .spec.egress[].to
- 설명
- to는 이 규칙에 대해 선택된 포드의 발신 트래픽의 대상 목록입니다. 이 목록의 항목은 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 대상과 일치합니다(대상에 의해 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 목록에서 하나 이상의 항목과 일치하는 경우에만 트래픽을 허용합니다.
- 유형
-
array
18.1.7. .spec.egress[].to[]
- 설명
- NetworkPolicyPeer는 트래픽을/에서 허용할 피어를 설명합니다. 특정 필드 조합만 허용됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| IPBlock은 특정 CIDR을 설명합니다(Ex. NetworkPolicySpec의 podSelector와 일치하는 Pod에 허용되는 "192.168.1.0/24","2001:db8::/64"). except 항목은 이 규칙에 포함되지 않아야 하는 CIDR을 설명합니다. |
| namespaceSelector는 클러스터 범위 레이블을 사용하여 네임스페이스를 선택합니다. 이 필드는 표준 라벨 선택기 의미 체계를 따릅니다. 존재하지만 비어 있으면 모든 네임스페이스를 선택합니다. podSelector도 설정된 경우 전체 NetworkPolicyPeer는 namespaceSelector에서 선택한 네임스페이스에서 podSelector와 일치하는 Pod를 선택합니다. 그러지 않으면 namespaceSelector에서 선택한 네임스페이스의 모든 Pod를 선택합니다. | |
| podSelector는 Pod를 선택하는 라벨 선택기입니다. 이 필드는 표준 라벨 선택기 의미 체계를 따릅니다. 존재하지만 비어 있으면 모든 Pod를 선택합니다. namespaceSelector도 설정된 경우 전체 NetworkPolicyPeer는 NamespaceSelector에서 선택한 네임스페이스에서 podSelector와 일치하는 Pod를 선택합니다. 그러지 않으면 정책의 자체 네임스페이스에서 podSelector와 일치하는 Pod를 선택합니다. |
18.1.8. .spec.egress[].to[].ipBlock
- 설명
- IPBlock은 특정 CIDR을 설명합니다(Ex. NetworkPolicySpec의 podSelector와 일치하는 Pod에 허용되는 "192.168.1.0/24","2001:db8::/64"). except 항목은 이 규칙에 포함되지 않아야 하는 CIDR을 설명합니다.
- 유형
-
object
- 필수 항목
-
cidr
-
속성 | 유형 | 설명 |
---|---|---|
|
| CIDR은 IPBlock Valid 예제를 나타내는 문자열입니다 "192.168.1.0/24" 또는 "2001:db8::/64" |
|
| IPBlock Valid 예제에 포함되지 않아야 하는 CIDR 슬라이스를 제외하면 "192.168.1.0/24" 또는 "2001:db8::/64" Except 값이 cidr 범위 외부에 있는 경우 거부됩니다. |
18.1.9. .spec.ingress
- 설명
- Ingress는 선택한 Pod에 적용할 수신 규칙 목록입니다. Pod(및 클러스터 정책)를 선택하는 NetworkPolicies가 없거나 트래픽 소스가 Pod의 로컬 노드인 경우 또는 podSelector가 Pod와 일치하는 모든 NetworkPolicy 오브젝트에서 하나 이상의 수신 규칙과 일치하는 경우 트래픽이 포드에 허용됩니다. 이 필드가 비어 있으면 이 NetworkPolicy는 트래픽을 허용하지 않습니다. 선택한 Pod가 기본적으로 격리되도록만 사용됩니다.
- 유형
-
array
18.1.10. .spec.ingress[]
- 설명
- NetworkPolicyIngressRule은 NetworkPolicySpec의 podSelector와 일치하는 Pod에 허용되는 특정 트래픽 세트를 설명합니다. 트래픽은 포트 및 의 포트와 일치해야 합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 에서 이 규칙에 대해 선택한 포드에 액세스할 수 있어야 하는 소스 목록입니다. 이 목록의 항목은 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 소스와 일치합니다(소스로 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 from 목록의 하나 이상의 항목과 일치하는 경우에만 트래픽을 허용합니다. |
|
| NetworkPolicyPeer는 트래픽을/에서 허용할 피어를 설명합니다. 특정 필드 조합만 허용됩니다. |
|
| 포트는 이 규칙에 대해 선택한 Pod에서 액세스할 수 있어야 하는 포트 목록입니다. 이 목록의 각 항목은 논리 OR를 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 포트와 일치합니다(포트로 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 목록의 하나 이상의 포트와 일치하는 경우에만 트래픽을 허용합니다. |
|
| NetworkPolicyPort는 트래픽을 허용하는 포트를 설명합니다. |
18.1.11. .spec.ingress[].from
- 설명
- 에서 이 규칙에 대해 선택한 포드에 액세스할 수 있어야 하는 소스 목록입니다. 이 목록의 항목은 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 소스와 일치합니다(소스로 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 from 목록의 하나 이상의 항목과 일치하는 경우에만 트래픽을 허용합니다.
- 유형
-
array
18.1.12. .spec.ingress[].from[]
- 설명
- NetworkPolicyPeer는 트래픽을/에서 허용할 피어를 설명합니다. 특정 필드 조합만 허용됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| IPBlock은 특정 CIDR을 설명합니다(Ex. NetworkPolicySpec의 podSelector와 일치하는 Pod에 허용되는 "192.168.1.0/24","2001:db8::/64"). except 항목은 이 규칙에 포함되지 않아야 하는 CIDR을 설명합니다. |
| namespaceSelector는 클러스터 범위 레이블을 사용하여 네임스페이스를 선택합니다. 이 필드는 표준 라벨 선택기 의미 체계를 따릅니다. 존재하지만 비어 있으면 모든 네임스페이스를 선택합니다. podSelector도 설정된 경우 전체 NetworkPolicyPeer는 namespaceSelector에서 선택한 네임스페이스에서 podSelector와 일치하는 Pod를 선택합니다. 그러지 않으면 namespaceSelector에서 선택한 네임스페이스의 모든 Pod를 선택합니다. | |
| podSelector는 Pod를 선택하는 라벨 선택기입니다. 이 필드는 표준 라벨 선택기 의미 체계를 따릅니다. 존재하지만 비어 있으면 모든 Pod를 선택합니다. namespaceSelector도 설정된 경우 전체 NetworkPolicyPeer는 NamespaceSelector에서 선택한 네임스페이스에서 podSelector와 일치하는 Pod를 선택합니다. 그러지 않으면 정책의 자체 네임스페이스에서 podSelector와 일치하는 Pod를 선택합니다. |
18.1.13. .spec.ingress[].from[].ipBlock
- 설명
- IPBlock은 특정 CIDR을 설명합니다(Ex. NetworkPolicySpec의 podSelector와 일치하는 Pod에 허용되는 "192.168.1.0/24","2001:db8::/64"). except 항목은 이 규칙에 포함되지 않아야 하는 CIDR을 설명합니다.
- 유형
-
object
- 필수 항목
-
cidr
-
속성 | 유형 | 설명 |
---|---|---|
|
| CIDR은 IPBlock Valid 예제를 나타내는 문자열입니다 "192.168.1.0/24" 또는 "2001:db8::/64" |
|
| IPBlock Valid 예제에 포함되지 않아야 하는 CIDR 슬라이스를 제외하면 "192.168.1.0/24" 또는 "2001:db8::/64" Except 값이 cidr 범위 외부에 있는 경우 거부됩니다. |
18.1.14. .spec.ingress[].ports
- 설명
- 포트는 이 규칙에 대해 선택한 Pod에서 액세스할 수 있어야 하는 포트 목록입니다. 이 목록의 각 항목은 논리 OR를 사용하여 결합됩니다. 이 필드가 비어 있거나 누락된 경우 이 규칙은 모든 포트와 일치합니다(포트로 제한되지 않은 트래픽). 이 필드가 있고 하나 이상의 항목이 포함된 경우 이 규칙은 트래픽이 목록의 하나 이상의 포트와 일치하는 경우에만 트래픽을 허용합니다.
- 유형
-
array
18.1.15. .spec.ingress[].ports[]
- 설명
- NetworkPolicyPort는 트래픽을 허용하는 포트를 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| endPort는 정책에 의해 설정된 경우 포트에서 endPort까지의 포트 범위가 허용됨을 나타냅니다. port 필드가 정의되지 않았거나 port 필드가 이름이 지정된 (문자열) 포트로 정의된 경우 이 필드를 정의할 수 없습니다. endPort는 포트보다 크거나 같아야 합니다. |
| port는 지정된 프로토콜의 포트를 나타냅니다. Pod에서 숫자 또는 이름이 지정된 포트일 수 있습니다. 이 필드를 제공하지 않으면 모든 포트 이름과 숫자와 일치합니다. 있는 경우 지정된 프로토콜 및 포트의 트래픽만 일치합니다. | |
|
| protocol은 트래픽이 일치해야 하는 프로토콜(TCP, UDP 또는 SCTP)을 나타냅니다. 지정하지 않으면 이 필드는 기본적으로 TCP로 설정됩니다.
가능한 열거 값: - |