2.4. AdminNetworkPolicy에 대한 Egress 노드 및 네트워크 피어


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

2.4.1. AdminNetworkPolicy 및 BaselineAdminNetworkPolicy에 대한 북행 교통 제어

ANP와 BANP는 동서 교통 제어를 지원하는 것 외에도 관리자가 클러스터를 떠나는 북행 트래픽이나 노드를 떠나 클러스터의 다른 노드로 가는 트래픽을 제어할 수 있도록 합니다. 최종 사용자는 다음을 수행할 수 있습니다.

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

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

노드 피어 관리자는 클러스터의 노드에서 포드로의 유출 트래픽을 제어할 수 있습니다. 이 방법의 장점은 클러스터에 노드를 추가하거나 삭제할 때 정책을 변경할 필요가 없다는 것입니다.

다음 예제에서는 노드 선택기 피어를 사용하여 restricted , confidential 또는 internal 보안 수준을 가진 네임스페이스를 통해 포트 6443 에서 Kubernetes API 서버로의 송신 트래픽을 허용합니다. 또한 보안 수준이 ' 제한됨 ', '기밀 ' 또는 '내부' 인 모든 네임스페이스에서 클러스터의 모든 워커 노드로의 트래픽을 거부합니다.

예 2.8. 노드 피어를 사용하여 ANP 허용 이탈의 예

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 로 라벨이 지정된 모든 포드를 지정합니다.
3
네트워크 정책에서 사용하는 레이블과 일치하는 모든 네임스페이스를 포함하는 ANP의 주제를 지정합니다. 이 예제는 restricted , confidential 또는 internal 보안 수준을 가진 모든 네임스페이스와 일치합니다.
4
matchExpressions 필드에 대한 키/값 쌍을 지정합니다.

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

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

중요

ANP 및 BANP의 네임스페이스 필드에서 빈 선택자({})를 사용할 때는 주의하세요. 빈 선택기를 사용하면 OpenShift 네임스페이스도 선택됩니다.

ANP 또는 BANP 거부 규칙에서 0.0.0.0/0 값을 사용하는 경우 거부를 0.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 으로 설정하여 모든 것에 대한 출구 거부를 지정합니다. Deny를 0.0.0.0/0 으로 설정하기 전에 필수 대상에 대한 Allow 규칙의 우선순위가 더 높은지 확인하세요. 이렇게 하면 Kubernetes API 및 DNS 서버를 포함한 모든 트래픽이 거부됩니다.

네트워크-투-이그레스-피어 ANP와 네트워크 피어를 사용하는 기본 BANP는 함께 다음의 이그레스 정책을 시행합니다.

  • 모든 포드는 나열된 IP 주소의 외부 DNS 서버와 통신할 수 없습니다.
  • 모든 포드는 회사 인트라넷의 나머지 부분과 통신할 수 있습니다.
  • 모든 포드는 다른 포드, 노드, 서비스와 통신할 수 있습니다.
  • 모든 포드가 인터넷과 통신할 수는 없습니다. 마지막 ANP 통과 규칙과 강력한 BANP 거부 규칙을 결합하면 클러스터 내 트래픽을 보호하는 가드레일 정책이 생성됩니다.

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에서 북쪽으로 향하는 트래픽 제어를 출구 로만 사용할 수 있습니다.
3
ANP의 우선순위를 지정하여 평가 순서를 결정합니다. 우선순위가 낮은 규칙은 우선순위가 높습니다. ANP는 0~99의 값을 허용하며 0이 가장 높은 우선순위이고 99가 가장 낮은 우선순위입니다.
4
정책 규칙이 적용될 클러스터의 포드 세트를 지정합니다. 이 예에서 모든 네임스페이스에서 apps: all-apps 레이블이 있는 모든 포드는 정책의 주제 입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat