6.3. 본딩된 SR-IOV 인터페이스 플래그와 연관된 Pod에 대한 sysctl 설정 구성


본딩된 SR-IOV 네트워크 장치에 연결된 포드에 대해 인터페이스 수준 네트워크 sysctl 설정을 지정할 수 있습니다.

이 예에서는 구성 가능한 특정 네트워크 인터페이스 수준 sysctl 설정이 본딩된 인터페이스에 설정됩니다.

이 예제에서는 sysctl-tuning-test가 사용된 네임스페이스입니다.

  • 다음 명령을 사용하여 sysctl-tuning-test 네임스페이스를 만듭니다.

    $ oc create namespace sysctl-tuning-test
    Copy to Clipboard Toggle word wrap

6.3.1. SR-IOV 네트워크 장치가 연결된 노드에서 모든 sysctl 플래그 설정

SR-IOV 네트워크 운영자는 OpenShift Container Platform에 SriovNetworkNodePolicy.sriovnetwork.openshift.io 사용자 정의 리소스 정의(CRD)를 추가합니다. SriovNetworkNodePolicy 사용자 정의 리소스(CR)를 생성하여 SR-IOV 네트워크 장치를 구성할 수 있습니다.

참고

SriovNetworkNodePolicy 개체에 지정된 구성을 적용할 때 SR-IOV 운영자는 노드를 비우고, 어떤 경우에는 노드를 재부팅할 수 있습니다.

구성 변경 사항을 적용하는 데 몇 분이 걸릴 수 있습니다.

SriovNetworkNodePolicy 사용자 정의 리소스(CR)를 생성하려면 다음 절차를 따르세요.

프로세스

  1. SriovNetworkNodePolicy 사용자 정의 리소스(CR)를 만듭니다. 다음 YAML을 policyallflags-sriov-node-network.yaml 파일로 저장합니다. policyallflags를 구성의 이름으로 바꾸세요.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: policyallflags 
    1
    
      namespace: openshift-sriov-network-operator 
    2
    
    spec:
      resourceName: policyallflags 
    3
    
      nodeSelector: 
    4
    
        node.alpha.kubernetes-incubator.io/nfd-network-sriov.capable = `true`
      priority: 10 
    5
    
      numVfs: 5 
    6
    
      nicSelector: 
    7
    
        pfNames: ["ens1f0"]  
    8
    
      deviceType: "netdevice" 
    9
    
      isRdma: false 
    10
    Copy to Clipboard Toggle word wrap
    1
    사용자 정의 리소스 오브젝트의 이름입니다.
    2
    SR-IOV Network Operator가 설치된 네임스페이스입니다.
    3
    SR-IOV 네트워크 장치 플러그인의 리소스 이름입니다. 리소스 이름에 대한 SR-IOV 네트워크 노드 정책을 여러 개 생성할 수 있습니다.
    4
    노드 선택기는 구성할 노드를 지정합니다. 선택한 노드의 SR-IOV 네트워크 장치만 구성됩니다. SR-IOV 컨테이너 네트워크 인터페이스(CNI) 플러그인과 장치 플러그인은 선택된 노드에만 배포됩니다.
    5
    선택 사항: 우선순위는 0에서 99 사이의 정수 값입니다. 작은 값은 우선순위가 높습니다. 예를 들어 우선순위 10은 우선순위 99보다 높습니다. 기본값은 99입니다.
    6
    SR-IOV 물리적 네트워크 장치에 대해 생성할 가상 기능(VF)의 수입니다. Intel NIC(Network Interface Controller)의 경우 VF 수는 장치에서 지원하는 총 VF보다 클 수 없습니다. Mellanox NIC의 경우 VF 수는 127 보다 클 수 없습니다.
    7
    NIC 선택기는 Operator가 구성할 장치를 식별합니다. 모든 매개변수에 값을 지정할 필요는 없습니다. 실수로 장치를 선택하지 않도록 네트워크 장치를 정확하게 파악하는 것이 좋습니다. rootDevices를 지정하면 vendor, deviceID 또는 pfNames의 값도 지정해야 합니다. pfNamesrootDevices를 동시에 지정하는 경우 동일한 장치를 참조하는지 확인하십시오. netFilter의 값을 지정하는 경우 네트워크 ID가 고유하므로 다른 매개변수를 지정할 필요가 없습니다.
    8
    선택사항: 장치에 대해 하나 이상의 물리적 기능(PF) 이름으로 구성된 배열입니다.
    9
    선택사항: 가상 기능의 드라이버 유형입니다. 허용되는 값은 netdevice 뿐입니다. Mellanox NIC가 베어 메탈 노드에서 DPDK 모드로 작동하려면 isRdma를 true 로 설정합니다.
    10
    선택 사항: 원격 직접 메모리 액세스(RDMA) 모드를 활성화할지 여부를 구성합니다. 기본값은 false입니다. isRdma 매개변수가 true로 설정된 경우 RDMA 사용 VF를 일반 네트워크 장치로 계속 사용할 수 있습니다. 어느 모드에서나 장치를 사용할 수 있습니다. isRdmatrue로 설정하고 추가로 needVhostNettrue로 설정하여 Fast Datapath DPDK 애플리케이션에서 사용할 Mellanox NIC를 구성합니다.
    참고

    vfio-pci 드라이버 유형이 지원되지 않습니다.

  2. SriovNetworkNodePolicy 객체를 생성합니다.

    $ oc create -f policyallflags-sriov-node-network.yaml
    Copy to Clipboard Toggle word wrap

    구성 업데이트를 적용한 후 sriov-network-operator 네임스페이스의 모든 포드가 실행 상태로 변경됩니다.

  3. SR-IOV 네트워크 장치가 구성되어 있는지 확인하려면 다음 명령을 입력합니다. <node_name>을 방금 구성한 SR-IOV 네트워크 장치가 있는 노드 이름으로 바꿉니다. 예상 출력은 Succeeded로 표시됩니다.

    $ oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'
    Copy to Clipboard Toggle word wrap

6.3.2. 본딩된 SR-IOV 네트워크에서 sysctl 구성

두 개의 SR-IOV 인터페이스에서 생성된 본딩 인터페이스에 인터페이스별 sysctl 설정을 지정할 수 있습니다. 이를 위해서는 본드 네트워크 첨부 정의의 선택적 플러그인 매개변수에 튜닝 구성을 추가해야 합니다.

참고

SR-IOV Network Operator가 관리하는 NetworkAttachmentDefinition 사용자 정의 리소스를 편집하지 마십시오. 편집하면 추가 네트워크의 네트워크 트래픽이 중단될 수 있습니다.

특정 인터페이스 수준 네트워크 sysctl 설정을 변경하려면 다음 절차를 사용하여 컨테이너 네트워크 인터페이스(CNI) 튜닝 플러그인으로 SriovNetwork 사용자 정의 리소스(CR)를 만듭니다.

사전 요구 사항

  • OpenShift Container Platform CLI, oc를 설치합니다.
  • cluster-admin 역할의 사용자로 OpenShift Container Platform 클러스터에 로그인합니다.

프로세스

  1. 다음 예제 CR과 같이 본딩된 인터페이스에 대한 SriovNetwork 사용자 지정 리소스(CR)를 만듭니다. YAML을 sriov-network-attachment.yaml 파일로 저장합니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetwork
    metadata:
      name: allvalidflags 
    1
    
      namespace: openshift-sriov-network-operator 
    2
    
    spec:
      resourceName: policyallflags 
    3
    
      networkNamespace: sysctl-tuning-test 
    4
    
      capabilities: '{ "mac": true, "ips": true }' 
    5
    Copy to Clipboard Toggle word wrap
    1
    오브젝트의 이름입니다. SR-IOV 네트워크 운영자는 동일한 이름으로 NetworkAttachmentDefinition 객체를 생성합니다.
    2
    SR-IOV Network Operator가 설치된 네임스페이스입니다.
    3
    이 추가 네트워크에 대한 SR-IOV 하드웨어를 정의하는 SriovNetworkNodePolicy 오브젝트의 spec.resourceName 매개변수 값입니다.
    4
    SriovNetwork 오브젝트의 대상 네임스페이스입니다. 대상 네임스페이스의 포드만 추가 네트워크에 연결할 수 있습니다.
    5
    선택사항: 이 추가 네트워크에 구성할 수 있는 기능입니다. "{"ips": true}" 를 지정하여 IP 주소 지원을 활성화하거나 "{"mac":true}"를 지정하여 MAC 주소 지원을 활성화할 수 있습니다.
  2. SriovNetwork 리소스를 생성합니다.

    $ oc create -f sriov-network-attachment.yaml
    Copy to Clipboard Toggle word wrap
  3. 다음 CR 예제와 같이 본드 네트워크 첨부 정의를 만듭니다. YAML을 sriov-bond-network-interface.yaml 파일로 저장합니다.

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: bond-sysctl-network
      namespace: sysctl-tuning-test
    spec:
      config: '{
      "cniVersion":"0.4.0",
      "name":"bound-net",
      "plugins":[
        {
          "type":"bond", 
    1
    
          "mode": "active-backup", 
    2
    
          "failOverMac": 1, 
    3
    
          "linksInContainer": true, 
    4
    
          "miimon": "100",
          "links": [ 
    5
    
            {"name": "net1"},
            {"name": "net2"}
          ],
          "ipam":{ 
    6
    
            "type":"static"
          }
        },
        {
          "type":"tuning", 
    7
    
          "capabilities":{
            "mac":true
          },
          "sysctl":{
            "net.ipv4.conf.IFNAME.accept_redirects": "0",
            "net.ipv4.conf.IFNAME.accept_source_route": "0",
            "net.ipv4.conf.IFNAME.disable_policy": "1",
            "net.ipv4.conf.IFNAME.secure_redirects": "0",
            "net.ipv4.conf.IFNAME.send_redirects": "0",
            "net.ipv6.conf.IFNAME.accept_redirects": "0",
            "net.ipv6.conf.IFNAME.accept_source_route": "1",
            "net.ipv6.neigh.IFNAME.base_reachable_time_ms": "20000",
            "net.ipv6.neigh.IFNAME.retrans_time_ms": "2000"
          }
        }
      ]
    }'
    Copy to Clipboard Toggle word wrap
    1
    유형은 채권 입니다.
    2
    모드 속성은 본딩 모드를 지정합니다. 지원되는 본딩 모드는 다음과 같습니다.
    • 균형-rr - 0
    • 활성 백업 - 1
    • 밸런스-xor -2

      balance-rr 또는 balance-xor 모드의 경우 SR-IOV 가상 함수에 대한 신뢰 모드를 켜짐 으로 설정해야 합니다.

    3
    장애 조치(failover) 속성은 액티브 백업 모드에 필수입니다.
    4
    linksInContainer=true 플래그는 필요한 인터페이스가 컨테이너 내부에서 발견된다는 것을 Bond CNI에 알립니다. 기본적으로 Bond CNI는 SRIOV 및 Multus와의 통합에 적합하지 않은 호스트에서 이러한 인터페이스를 찾습니다.
    5
    링크 섹션은 본드를 생성하는 데 사용될 인터페이스를 정의합니다. 기본적으로 Multus는 연결된 인터페이스의 이름을 "net"과 1부터 시작하는 연속된 숫자로 지정합니다.
    6
    YAML 블록 스칼라로서 IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다. 이 포드 예제에서는 IP 주소가 수동으로 구성되므로 이 경우 ipam이 정적으로 설정됩니다.
    7
    장치에 추가 기능을 추가합니다. 예를 들어, 유형 필드를 튜닝 으로 설정합니다. sysctl 필드에 설정하려는 인터페이스 수준 네트워크 sysctl을 지정합니다. 이 예제에서는 설정할 수 있는 모든 인터페이스 수준 네트워크 sysctl 설정을 지정합니다.
  4. 본드 네트워크 첨부 리소스를 만듭니다.

    $ oc create -f sriov-bond-network-interface.yaml
    Copy to Clipboard Toggle word wrap

NetworkAttachmentDefinition CR이 성공적으로 생성되었는지 확인

  • 다음 명령을 실행하여 SR-IOV 네트워크 운영자가 NetworkAttachmentDefinition CR을 생성했는지 확인하세요.

    $ oc get network-attachment-definitions -n <namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <네임스페이스>를 네트워크 연결을 구성할 때 지정한 네트워크네임스페이스(예: sysctl-tuning-test ) 로 바꿉니다. 예상 출력에는 NAD CRD의 이름과 생성 시간(분)이 표시됩니다.
    참고

    SR-IOV Network Operator가 CR을 생성하기 전에 지연이 발생할 수 있습니다.

추가 SR-IOV 네트워크 리소스가 성공했는지 확인

튜닝 CNI가 올바르게 구성되었고 추가 SR-IOV 네트워크 연결이 연결되었는지 확인하려면 다음을 수행합니다.

  1. Pod CR을 생성합니다. 예를 들어, 다음 YAML을 examplepod.yaml 파일로 저장합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: tunepod
      namespace: sysctl-tuning-test
      annotations:
        k8s.v1.cni.cncf.io/networks: |-
          [
            {"name": "allvalidflags"}, 
    1
    
            {"name": "allvalidflags"},
            {
              "name": "bond-sysctl-network",
              "interface": "bond0",
              "mac": "0a:56:0a:83:04:0c", 
    2
    
              "ips": ["10.100.100.200/24"] 
    3
    
           }
          ]
    spec:
      containers:
      - name: podexample
        image: centos
        command: ["/bin/bash", "-c", "sleep INF"]
        securityContext:
          runAsUser: 2000
          runAsGroup: 3000
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
    Copy to Clipboard Toggle word wrap
    1
    SR-IOV 네트워크 연결 정의 CR의 이름입니다.
    2
    선택사항: SR-IOV 네트워크 연결 정의 CR에 정의된 리소스 유형에서 할당된 SR-IOV 장치의 MAC 주소입니다. 이 기능을 사용하려면 SriovNetwork 개체에서 { "mac": true } 도 지정해야 합니다.
    3
    선택 사항: SR-IOV 네트워크 연결 정의 CR에 정의된 리소스 유형에서 할당된 SR-IOV 장치의 IP 주소입니다. IPv4 및 IPv6 주소가 모두 지원됩니다. 이 기능을 사용하려면 SriovNetwork 오브젝트에 { "ips": true }도 지정해야 합니다.
  2. YAML을 적용합니다.

    $ oc apply -f examplepod.yaml
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 Pod가 생성되었는지 확인하세요.

    $ oc get pod -n sysctl-tuning-test
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME      READY   STATUS    RESTARTS   AGE
    tunepod   1/1     Running   0          47s
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 Pod에 로그인합니다.

    $ oc rsh -n sysctl-tuning-test tunepod
    Copy to Clipboard Toggle word wrap
  5. 구성된 sysctl 플래그의 값을 확인합니다. 다음 명령을 실행하여 net.ipv6.neigh.IFNAME.base_reachable_time_ms 값을 찾으세요.

    $ sysctl net.ipv6.neigh.bond0.base_reachable_time_ms
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat