2.4. 관리NetworkPolicy의 송신 노드 및 네트워크 피어


이 섹션에서는 노드네트워크 피어에 대해 설명합니다. 관리자는 이 섹션의 예제를 사용하여 AdminNetworkPolicyBaselineAdminNetworkPolicy 를 설계하여 클러스터의 northbound 트래픽을 제어할 수 있습니다.

east-west 트래픽 제어를 지원하는 것 외에도 ANP 및 BANP를 사용하면 관리자가 클러스터의 다른 노드로 노드를 나가는 northbound 트래픽을 제어할 수 있습니다. 최종 사용자는 다음을 수행할 수 있습니다.

  • 노드 송신 피어를 사용하여 클러스터 노드에 대한 송신 트래픽 제어를 구현합니다.
  • 노드 또는 네트워크 송신 피어를 사용하여 Kubernetes API 서버에 대한 송신 트래픽 제어를 구현합니다.
  • 네트워크 피어를 사용하여 클러스터 외부의 외부 대상에 대한 송신 트래픽 제어를 구현합니다.
참고

ANP 및 BANP의 경우 노드네트워크 피어는 송신 규칙에 대해서만 지정할 수 있습니다.

2.4.1.1. 노드 피어를 사용하여 클러스터 노드로의 송신 트래픽 제어

노드 피어 관리자를 사용하면 Pod에서 클러스터 노드로의 송신 트래픽을 제어할 수 있습니다. 이로 인해 노드가 클러스터에 추가되거나 클러스터에 삭제될 때 정책을 변경할 필요가 없습니다.

다음 예제에서는 노드 선택기 피어를 사용하여 제한된,기밀 또는 내부 보안 수준이 있는 네임스페이스에 의해 포트 6443 의 Kubernetes API 서버로의 송신 트래픽을 허용합니다. 또한 제한된 기밀 또는 내부 보안 수준이 있는 네임스페이스에서 클러스터의 모든 작업자 노드에 대한 트래픽을 거부합니다.

예 2.8. 노드 피어를 사용하여 송신 허용 의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: egress-security-allow
spec:
  egress:
  - action: Deny
    to:
    - nodes:
        matchExpressions:
        - key: node-role.kubernetes.io/worker
          operator: Exists
  - action: Allow
    name: allow-to-kubernetes-api-server-and-engr-dept-pods
    ports:
    - portNumber:
        port: 6443
        protocol: TCP
    to:
    - nodes: 
1

        matchExpressions:
        - key: node-role.kubernetes.io/control-plane
          operator: Exists
    - pods: 
2

        namespaceSelector:
          matchLabels:
            dept: engr
        podSelector: {}
  priority: 55
  subject: 
3

    namespaces:
      matchExpressions:
      - key: security 
4

        operator: In
        values:
        - restricted
        - confidential
        - internal
Copy to Clipboard Toggle word wrap
1
matchExpressions 필드를 사용하여 클러스터의 노드 또는 노드 집합을 지정합니다.
2
dept: engr 로 레이블이 지정된 모든 Pod를 지정합니다.
3
네트워크 정책에서 사용하는 라벨과 일치하는 네임스페이스를 포함하는 ANP의 제목을 지정합니다. 이 예제에서는 제한된 보안,기밀 또는 내부 보안 수준이 있는 네임스페이스와 일치합니다.
4
matchExpressions 필드의 키/값 쌍을 지정합니다.

2.4.1.2. 네트워크 피어를 사용하여 외부 대상으로의 송신 트래픽 제어

클러스터 관리자는 네트워크 피어에서 CIDR 범위를 사용하고 Pod에서 나가는 송신 트래픽을 제어하고 네트워크 필드로 지정된 CIDR 범위 내에 있는 IP 주소에 구성된 대상으로 이동할 수 있습니다.

다음 예제에서는 네트워크 피어를 사용하고 ANP 및 BANP 정책을 결합하여 송신 트래픽을 제한합니다.

중요

ANP 및 BANP의 네임스페이스 필드에서 빈 선택기({})를 사용합니다. 빈 선택기를 사용하는 경우 OpenShift 네임스페이스도 선택합니다.

ANP 또는 BANP Deny 규칙에서 0.0.0.0/0 값을 사용하는 경우 Deny0.0.0.0/0 로 설정하기 전에 더 높은 우선 순위 ANP 허용 규칙을 필요한 대상에 설정해야 합니다.

예 2.9. 네트워크 피어를 사용하는 ANP 및 BANP의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: network-as-egress-peer
spec:
  priority: 70
  subject:
    namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  egress:
  - name: "deny-egress-to-external-dns-servers"
    action: "Deny"
    to:
    - networks:
1

      - 8.8.8.8/32
      - 8.8.4.4/32
      - 208.67.222.222/32
    ports:
      - portNumber:
          protocol: UDP
          port: 53
  - name: "allow-all-egress-to-intranet"
    action: "Allow"
    to:
    - networks: 
2

      - 89.246.180.0/22
      - 60.45.72.0/22
  - name: "allow-all-intra-cluster-traffic"
    action: "Allow"
    to:
    - namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  - name: "pass-all-egress-to-internet"
    action: "Pass"
    to:
    - networks:
      - 0.0.0.0/0 
3

---
apiVersion: policy.networking.k8s.io/v1alpha1
kind: BaselineAdminNetworkPolicy
metadata:
  name: default
spec:
  subject:
    namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  egress:
  - name: "deny-all-egress-to-internet"
    action: "Deny"
    to:
    - networks:
      - 0.0.0.0/0 
4

---
Copy to Clipboard Toggle word wrap
1
네트워크를 사용하여 클러스터 외부의 CIDR 네트워크 범위를 지정합니다.
2
리소스의 클러스터 내부 트래픽의 CIDR 범위를 지정합니다.
3 4
네트워크 값을 0.0.0.0/0 으로 설정하여 모든 항목에 대한 거부 송신을 지정합니다. Kubernetes API 및 DNS 서버를 포함한 모든 트래픽을 거부하므로 Deny0.0.0.0/0 로 설정하기 전에 필요한 대상에 우선 순위가 더 높은 허용 규칙이 있는지 확인합니다.

네트워크 피어를 사용하여 network-as-egress-peer ANP와 기본 BANP를 공동으로 사용하여 다음 송신 정책을 적용합니다.

  • 모든 Pod는 나열된 IP 주소에 있는 외부 DNS 서버와 통신할 수 없습니다.
  • 모든 pod는 회사의 인트라넷의 나머지 부분과 통신할 수 있습니다.
  • 모든 Pod는 다른 Pod, 노드 및 서비스와 통신할 수 있습니다.
  • 모든 pod가 인터넷과 통신할 수 없습니다. 마지막 ANP Pass 규칙과 보호 장치가 있는 강력한 BANP Deny 규칙을 결합하여 클러스터의 트래픽을 보호합니다.

2.4.1.3. 노드 피어 및 네트워크 피어 사용

클러스터 관리자는 ANP 및 BANP 정책의 노드네트워크 피어를 결합할 수 있습니다.

예 2.10. 노드네트워크 피어의 예

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: egress-peer-1 
1

spec:
  egress: 
2

  - action: "Allow"
    name: "allow-egress"
    to:
    - nodes:
        matchExpressions:
        - key: worker-group
          operator: In
          values:
          - workloads # Egress traffic from nodes with label worker-group: workloads is allowed.
    - networks:
      - 104.154.164.170/32
    - pods:
        namespaceSelector:
          matchLabels:
            apps: external-apps
        podSelector:
          matchLabels:
            app: web # This rule in the policy allows the traffic directed to pods labeled apps: web in projects with apps: external-apps to leave the cluster.
  - action: "Deny"
    name: "deny-egress"
    to:
    - nodes:
        matchExpressions:
        - key: worker-group
          operator: In
          values:
          - infra # Egress traffic from nodes with label worker-group: infra is denied.
    - networks:
      - 104.154.164.160/32 # Egress traffic to this IP address from cluster is denied.
    - pods:
        namespaceSelector:
          matchLabels:
            apps: internal-apps
        podSelector: {}
  - action: "Pass"
    name: "pass-egress"
    to:
    - nodes:
        matchExpressions:
        - key: node-role.kubernetes.io/worker
          operator: Exists # All other egress traffic is passed to NetworkPolicy or BANP for evaluation.
  priority: 30 
3

  subject: 
4

    namespaces:
      matchLabels:
        apps: all-apps
Copy to Clipboard Toggle word wrap
1
정책 이름을 지정합니다.
2
노드네트워크 피어의 경우 ANP에서 northbound 트래픽 제어를 송신 으로만 사용할 수 있습니다.
3
ANP의 우선 순위를 지정하고 평가해야 하는 순서를 결정합니다. 우선순위가 낮은 규칙이 우선순위가 높습니다. ANP는 0~99의 값을 허용하며, 0은 우선순위가 가장 높고 99가 가장 낮은 우선 순위입니다.
4
정책의 규칙을 적용할 클러스터의 Pod 집합을 지정합니다. 이 예에서 apps가 있는 모든 Pod: 모든 네임스페이스의 all-apps 레이블이 정책의 제목 입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat