1.7. 다양한 인터페이스에 대한 예제 정책 구성


다른 예제 NodeNetworkConfigurationPolicy (NNCP) 매니페스트 구성을 읽기 전에 노드에 정책을 적용할 때 최상의 성능 조건에서 클러스터가 실행되도록 다음 요인을 고려하십시오.

  • 둘 이상의 노드에 정책을 적용해야 하는 경우 각 대상 노드에 대한 NodeNetworkConfigurationPolicy 매니페스트를 생성합니다. Kubernetes NMState Operator는 정의된 NNCP를 사용하여 지정된 순서로 정책을 각 노드에 적용합니다. 이 방법을 사용하여 정책 범위를 지정하면 정책 애플리케이션의 기간이 단축되지만 클러스터 구성에 오류가 있는 경우 클러스터 전체에서 중단될 위험이 있습니다. 이러한 유형의 오류를 방지하려면 처음에 NNCP를 일부 노드에 적용하고 이러한 노드에 대해 NNCP가 올바르게 구성되었는지 확인한 다음 나머지 노드에 정책을 적용합니다.
  • 여러 노드에 정책을 적용해야 하지만 모든 노드에 대해 단일 NNCP만 생성하려는 경우 Kubernetes NMState Operator는 정책을 각 노드에 순서대로 적용합니다. 클러스터의 구성 파일에서 maxUnavailable 매개변수를 사용하여 대상 노드의 정책 애플리케이션 속도 및 범위를 설정할 수 있습니다. 매개변수의 백분율 낮은 값을 설정하면 중단이 정책 애플리케이션을 수신하는 노드의 소수에 영향을 미치는 경우 클러스터 전체 중단 위험을 줄일 수 있습니다.
  • NNCP 매니페스트에서 maxUnavailable 매개변수를 50% 로 설정하면 클러스터의 노드의 100%에 정책 구성 적용이 적용됩니다.
  • 노드가 다시 시작되면 Kubernetes NMState Operator는 노드에 정책을 적용하는 순서를 제어할 수 없습니다. Kubernetes NMState Operator는 성능이 저하된 네트워크 오브젝트를 생성하는 순서대로 상호 종속적인 정책을 적용할 수 있습니다.
  • 단일 정책에서 관련 네트워크 구성을 모두 지정하는 것이 좋습니다.

1.7.1. 예제: 이더넷 인터페이스 노드 네트워크 구성 정책

NodeNetworkConfigurationPolicy 매니페스트를 클러스터에 적용하여 클러스터의 노드에서 이더넷 인터페이스를 구성합니다.

다음 YAML 파일은 이더넷 인터페이스의 매니페스트 예제입니다. 여기에는 해당 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: eth1-policy 
1

spec:
  nodeSelector: 
2

    kubernetes.io/hostname: <node01> 
3

  desiredState:
    interfaces:
    - name: eth1 
4

      description: Configuring eth1 on node01 
5

      type: ethernet 
6

      state: up 
7

      ipv4:
        dhcp: true 
8

        enabled: true 
9
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예제에서는 hostname 노드 선택기를 사용합니다.
4
인터페이스 이름입니다.
5
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
6
인터페이스 유형입니다. 이 예제에서는 이더넷 네트워킹 인터페이스를 생성합니다.
7
생성 후 인터페이스에 요청되는 상태입니다.
8
선택 사항: dhcp를 사용하지 않는 경우 고정 IP를 설정하거나 IP 주소 없이 인터페이스를 종료할 수 있습니다.
9
이 예제에서 ipv4를 활성화합니다.

1.7.2. 예: Linux 브리지 인터페이스 노드 네트워크 구성 정책

NodeNetworkConfigurationPolicy 매니페스트를 클러스터에 적용하여 클러스터의 노드에서 Linux 브리지 인터페이스를 만듭니다.

다음 YAML 파일은 Linux 브리지 인터페이스의 매니페스트 예제입니다. 여기에는 해당 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: br1-eth1-policy 
1

spec:
  nodeSelector: 
2

    kubernetes.io/hostname: <node01> 
3

  desiredState:
    interfaces:
      - name: br1 
4

        description: Linux bridge with eth1 as a port 
5

        type: linux-bridge 
6

        state: up 
7

        ipv4:
          dhcp: true 
8

          enabled: true 
9

        bridge:
          options:
            stp:
              enabled: false 
10

          port:
            - name: eth1 
11
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예제에서는 hostname 노드 선택기를 사용합니다.
4
인터페이스 이름입니다.
5
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
6
인터페이스 유형입니다. 이 예제에서는 브리지를 만듭니다.
7
생성 후 인터페이스에 요청되는 상태입니다.
8
선택 사항: dhcp를 사용하지 않는 경우 고정 IP를 설정하거나 IP 주소 없이 인터페이스를 종료할 수 있습니다.
9
이 예제에서 ipv4를 활성화합니다.
10
이 예제에서 stp를 비활성화합니다.
11
브리지가 연결되는 노드 NIC입니다.

1.7.3. 예제: VLAN 인터페이스 노드 네트워크 구성 정책

NodeNetworkConfigurationPolicy 매니페스트를 클러스터에 적용하여 클러스터의 노드에서 VLAN 인터페이스를 만듭니다.

참고

단일 NodeNetworkConfigurationPolicy 매니페스트에서 노드의 VLAN 인터페이스에 대한 모든 관련 구성을 정의합니다. 예를 들어 노드의 VLAN 인터페이스와 동일한 NodeNetworkConfigurationPolicy 매니페스트에서 VLAN 인터페이스에 대한 관련 경로를 정의합니다.

노드가 다시 시작되면 Kubernetes NMState Operator는 정책이 적용되는 순서를 제어할 수 없습니다. 따라서 관련 네트워크 구성에 별도의 정책을 사용하는 경우 Kubernetes NMState Operator에서 이러한 정책을 순서대로 적용하여 저하된 네트워크 오브젝트를 만들 수 있습니다.

다음 YAML 파일은 VLAN 인터페이스의 매니페스트 예제입니다. 여기에는 해당 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: vlan-eth1-policy 
1

spec:
  nodeSelector: 
2

    kubernetes.io/hostname: <node01> 
3

  desiredState:
    interfaces:
    - name: eth1.102 
4

      description: VLAN using eth1 
5

      type: vlan 
6

      state: up 
7

      vlan:
        base-iface: eth1 
8

        id: 102 
9
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예제에서는 hostname 노드 선택기를 사용합니다.
4
인터페이스 이름입니다. 베어 메탈에 배포하는 경우 < interface_name>.<vlan_number > VLAN 형식만 지원됩니다.
5
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
6
인터페이스 유형입니다. 이 예제에서는 VLAN을 만듭니다.
7
생성 후 인터페이스에 요청되는 상태입니다.
8
VLAN이 연결되는 노드 NIC입니다.
9
VLAN 태그입니다.

1.7.4. 예제: 본딩 인터페이스 노드 네트워크 구성 정책

NodeNetworkConfigurationPolicy 매니페스트를 클러스터에 적용하여 클러스터의 노드에서 본딩 인터페이스를 만듭니다.

참고

OpenShift Container Platform에서는 다음과 같은 본딩 모드만 지원합니다.

  • mode=1 active-backup
  • mode=2 balance-xor
  • mode=4 802.3ad

다른 본딩 모드는 지원되지 않습니다.

다음 YAML 파일은 본딩 인터페이스의 매니페스트 예제입니다. 여기에는 해당 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: bond0-eth1-eth2-policy 
1

spec:
  nodeSelector: 
2

    kubernetes.io/hostname: <node01> 
3

  desiredState:
    interfaces:
    - name: bond0 
4

      description: Bond with ports eth1 and eth2 
5

      type: bond 
6

      state: up 
7

      ipv4:
        dhcp: true 
8

        enabled: true 
9

      link-aggregation:
        mode: active-backup 
10

        options:
          miimon: '140' 
11

        port: 
12

        - eth1
        - eth2
      mtu: 1450 
13
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예제에서는 hostname 노드 선택기를 사용합니다.
4
인터페이스 이름입니다.
5
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
6
인터페이스 유형입니다. 이 예제에서는 본딩을 생성합니다.
7
생성 후 인터페이스에 요청되는 상태입니다.
8
선택 사항: dhcp를 사용하지 않는 경우 고정 IP를 설정하거나 IP 주소 없이 인터페이스를 종료할 수 있습니다.
9
이 예제에서 ipv4를 활성화합니다.
10
본딩의 드라이버 모드입니다. 이 예제에서는 활성 백업 모드를 사용합니다.
11
선택 사항: 이 예제에서는 miimon을 사용하여 140ms마다 본딩 링크를 검사합니다.
12
본딩의 하위 노드 NIC입니다.
13
선택 사항: 본딩의 MTU(최대 전송 단위)입니다. 지정하지 않는 경우 이 값은 기본적으로 1500으로 설정됩니다.

1.7.5. 예제: 노드 네트워크 구성 정책이 동일한 여러 인터페이스

동일한 노드 네트워크 구성 정책으로 여러 개의 인터페이스를 생성할 수 있습니다. 이러한 인터페이스는 서로를 참조할 수 있으므로 단일 정책 매니페스트를 사용하여 네트워크 구성을 빌드하고 배포할 수 있습니다.

다음 예제 YAML 파일은 본딩에 연결하는 bond10.103 이라는 두 NIC와 VLAN에서 이름이 bond10 인 본딩을 생성합니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: bond-vlan 
1

spec:
  nodeSelector: 
2

    kubernetes.io/hostname: <node01> 
3

  desiredState:
    interfaces:
    - name: bond10 
4

      description: Bonding eth2 and eth3 
5

      type: bond 
6

      state: up 
7

      link-aggregation:
        mode: balance-xor 
8

        options:
          miimon: '140' 
9

        port: 
10

        - eth2
        - eth3
    - name: bond10.103 
11

      description: vlan using bond10 
12

      type: vlan 
13

      state: up 
14

      vlan:
         base-iface: bond10 
15

         id: 103 
16

      ipv4:
        dhcp: true 
17

        enabled: true 
18
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예에서는 호스트 이름 노드 선택기를 사용합니다.
4 11
인터페이스 이름입니다.
5 12
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
6 13
인터페이스 유형입니다.
7 14
생성 후 인터페이스에 요청되는 상태입니다.
8
본딩의 드라이버 모드입니다.
9
선택 사항: 이 예제에서는 miimon을 사용하여 140ms마다 본딩 링크를 검사합니다.
10
본딩의 하위 노드 NIC입니다.
15
VLAN이 연결되는 노드 NIC입니다.
16
VLAN 태그입니다.
17
선택 사항: dhcp를 사용하지 않는 경우 고정 IP를 설정하거나 IP 주소 없이 인터페이스를 종료할 수 있습니다.
18
이 예제에서 ipv4를 활성화합니다.

1.7.6. 예: 가상 기능을 위한 노드 네트워크 구성 정책

NodeNetworkConfigurationPolicy 매니페스트를 적용하여 기존 클러스터에서 SR-IOV(Single Root I/O Virtualization) 네트워크 가상 기능(VF)에 대한 호스트 네트워크 설정을 업데이트합니다.

NodeNetworkConfigurationPolicy 매니페스트를 기존 클러스터에 적용하여 다음 작업을 완료할 수 있습니다.

  • VF의 QoS 호스트 네트워크 설정을 구성하여 성능을 최적화합니다.
  • 네트워크 인터페이스의 VF를 추가, 제거 또는 업데이트합니다.
  • VF 본딩 구성을 관리합니다.
참고

SR-IOV Network Operator를 통해 관리되는 물리적 기능에 NMState를 사용하여 SR-IOV VF의 호스트 네트워크 설정을 업데이트하려면 관련 SriovNetworkNodePolicy 리소스의 external Managed 매개변수를 true 로 설정해야 합니다. 자세한 내용은 추가 리소스 섹션을 참조하십시오.

다음 YAML 파일은 VF에 대한 QoS 정책을 정의하는 매니페스트의 예입니다. 이 YAML에는 자체 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: qos 
1

spec:
  nodeSelector: 
2

    node-role.kubernetes.io/worker: "" 
3

  desiredState:
    interfaces:
      - name: ens1f0 
4

        description: Change QOS on VF0 
5

        type: ethernet 
6

        state: up 
7

        ethernet:
         sr-iov:
           total-vfs: 3 
8

           vfs:
           - id: 0 
9

             max-tx-rate: 200 
10
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예제는 작업자 역할이 있는 모든 노드에 적용됩니다.
4
물리적 기능(PF) 네트워크 인터페이스의 이름입니다.
5
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
6
인터페이스 유형입니다.
7
구성 후 인터페이스에 요청된 상태입니다.
8
총 VF 수입니다.
9
ID가 0 인 VF를 식별합니다.
10
VF에 대해 최대 전송 속도(Mbps)를 설정합니다. 이 샘플 값은 200Mbps의 속도를 설정합니다.

다음 YAML 파일은 네트워크 인터페이스에 대한 VF를 추가하는 매니페스트의 예입니다.

이 샘플 구성에서 ens1f1v0 VF는 ens1f1 물리적 인터페이스에서 생성되며 이 VF는 본딩된 네트워크 인터페이스 bond0 에 추가됩니다. 본딩은 중복성에 active-backup 모드를 사용합니다. 이 예에서 VF는 하드웨어 오프로드를 사용하여 물리적 인터페이스에서 직접 VLAN을 관리하도록 구성되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: addvf 
1

spec:
  nodeSelector: 
2

    node-role.kubernetes.io/worker: "" 
3

  maxUnavailable: 3
  desiredState:
    interfaces:
      - name: ens1f1 
4

        type: ethernet
        state: up
        ethernet:
            sr-iov:
              total-vfs: 1 
5

              vfs:
                - id: 0
                  trust: true 
6

                  vlan-id: 477 
7

      - name: bond0 
8

        description: Attach VFs to bond 
9

        type: bond 
10

        state: up 
11

        link-aggregation:
          mode: active-backup 
12

          options:
            primary: ens1f0v0 
13

          port: 
14

            - ens1f0v0
            - ens1f1v0 
15
Copy to Clipboard Toggle word wrap
1
정책 이름입니다.
2
선택 사항: nodeSelector 매개변수를 포함하지 않으면 정책이 클러스터의 모든 노드에 적용됩니다.
3
이 예제에서는 작업자 역할이 있는 모든 노드에 적용됩니다.
4
VF 네트워크 인터페이스의 이름입니다.
5
생성할 VF 수입니다.
6
활성 및 백업 VF 간의 장애 조치 본딩을 허용하도록 설정
7
VLAN의 ID입니다. 이 예제에서는 하드 오프로드를 사용하여 VF에서 직접 VLAN을 정의합니다.
8
본딩 네트워크 인터페이스의 이름입니다.
9
선택 사항: 사람이 읽을 수 있는 인터페이스 설명입니다.
10
인터페이스 유형입니다.
11
구성 후 인터페이스에 요청된 상태입니다.
12
본딩에 대한 본딩 정책입니다.
13
연결된 기본 본딩 포트입니다.
14
본딩된 네트워크 인터페이스의 포트입니다.
15
이 예에서는 VLAN 네트워크 인터페이스가 본딩된 네트워크 인터페이스에 추가 인터페이스로 추가됩니다.

NodeNetworkConfigurationPolicy CR(사용자 정의 리소스)을 적용하여 VRF(Virtual Routing and Forwarding) 인스턴스를 네트워크 인터페이스와 연결합니다.

중요

VRF 인스턴스를 네트워크 인터페이스와 연결하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

VRF 인스턴스를 네트워크 인터페이스와 연결하면 트래픽 격리, 독립적인 라우팅 결정 및 네트워크 리소스의 논리적 분리를 지원할 수 있습니다.

주의

VRF(Virtual Route Forwarding)를 구성할 때 값이 OpenShift Container Platform용으로 예약되므로 VRF 값을 1000 보다 낮은 테이블 ID로 변경해야 합니다.

베어 메탈 환경에서는 MetalLB를 사용하여 VRF 인스턴스에 속하는 인터페이스를 통해 로드 밸런서 서비스를 알릴 수 있습니다. 자세한 내용은 추가 리소스 섹션을 참조하십시오.

다음 YAML 파일은 VRF 인스턴스를 네트워크 인터페이스에 연결하는 예입니다. 여기에는 해당 정보로 교체해야 하는 샘플 값이 포함되어 있습니다.

apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: vrfpolicy 
1

spec:
  nodeSelector:
    vrf: "true" 
2

  maxUnavailable: 3
  desiredState:
    interfaces:
      - name: ens4vrf 
3

        type: vrf 
4

        state: up
        vrf:
          port:
            - ens4 
5

          route-table-id: 2 
6
Copy to Clipboard Toggle word wrap
1
정책의 이름입니다.
2
이 예제에서는 vrf:true 레이블이 있는 모든 노드에 정책을 적용합니다.
3
인터페이스의 이름입니다.
4
인터페이스 유형입니다. 이 예에서는 VRF 인스턴스를 생성합니다.
5
VRF가 연결하는 노드 인터페이스입니다.
6
VRF의 경로 테이블 ID의 이름입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat