24.8. SR-IOV 네트워크에 대한 인터페이스 수준 네트워크 sysctl 설정 구성


클러스터 관리자는 SR-IOV 네트워크 장치에 연결된 Pod의 CNI(Container Network Interface) 메타 플러그인을 사용하여 인터페이스 수준 네트워크 sysctl을 수정할 수 있습니다.

24.8.1. SR-IOV가 활성화된 NIC를 사용하여 노드에 레이블 지정

SR-IOV 가능 노드에서만 SR-IOV를 활성화하려면 다음을 수행하는 몇 가지 방법이 있습니다.

  1. NFD(Node Feature Discovery) Operator를 설치합니다. NFD는 SR-IOV가 활성화된 NIC의 존재를 감지하고 node.alpha.kubernetes-incubator.io/nfd-network-sriov.enabled = true 로 노드에 레이블을 지정합니다.
  2. 각 노드에 대해 SriovNetworkNodeState CR을 검사합니다. interfaces 스탠자에는 작업자 노드에서 SR-IOV Network Operator가 검색한 모든 SR-IOV 장치 목록이 포함됩니다. 다음 명령을 사용하여 각 노드에 feature.node.kubernetes.io/network-sriov.able: "true" 로 레이블을 지정합니다.

    $ oc label node <node_name> feature.node.kubernetes.io/network-sriov.capable="true"
    참고

    원하는 이름으로 노드에 레이블을 지정할 수 있습니다.

24.8.2. 하나의 sysctl 플래그 설정

SR-IOV 네트워크 장치에 연결된 Pod의 인터페이스 수준 네트워크 sysctl 설정을 설정할 수 있습니다.

이 예에서는 생성된 가상 인터페이스에서 net.ipv4.conf.IFNAME.accept_redirects1 로 설정됩니다.

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

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

    $ oc create namespace sysctl-tuning-test

24.8.2.1. SR-IOV 네트워크 장치를 사용하여 노드에서 하나의 sysctl 플래그 설정

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

참고

SriovNetworkNodePolicy 오브젝트에 지정된 구성을 적용하면 SR-IOV Operator가 노드를 비우고 재부팅할 수 있습니다.

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

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

프로세스

  1. SriovNetworkNodePolicy CR(사용자 정의 리소스)을 생성합니다. 예를 들어 다음 YAML을 policyoneflag-sriov-node-network.yaml 파일로 저장합니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: policyoneflag 1
      namespace: openshift-sriov-network-operator 2
    spec:
      resourceName: policyoneflag 3
      nodeSelector: 4
        feature.node.kubernetes.io/network-sriov.capable="true"
      priority: 10 5
      numVfs: 5 6
      nicSelector: 7
        pfNames: ["ens5"] 8
      deviceType: "netdevice" 9
      isRdma: false 10
    1
    사용자 정의 리소스 오브젝트의 이름입니다.
    2
    SR-IOV Network Operator가 설치된 네임스페이스입니다.
    3
    SR-IOV 네트워크 장치 플러그인의 리소스 이름입니다. 리소스 이름에 대한 SR-IOV 네트워크 노드 정책을 여러 개 생성할 수 있습니다.
    4
    노드 선택기는 구성할 노드를 지정합니다. 선택한 노드의 SR-IOV 네트워크 장치만 구성됩니다. SR-IOV CNI(Container Network Interface) 플러그인 및 장치 플러그인은 선택한 노드에만 배포됩니다.
    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 입니다. 베어 메탈 노드의 DPDK 모드에서 Mellanox NIC가 작동하려면 isRdmatrue 로 설정합니다.
    10
    선택 사항: 원격 직접 메모리 액세스(RDMA) 모드를 활성화할지 여부를 구성합니다. 기본값은 false입니다. isRdma 매개변수가 true로 설정된 경우 RDMA 사용 VF를 일반 네트워크 장치로 계속 사용할 수 있습니다. 어느 모드에서나 장치를 사용할 수 있습니다. isRdmatrue로 설정하고 추가로 needVhostNettrue로 설정하여 Fast Datapath DPDK 애플리케이션에서 사용할 Mellanox NIC를 구성합니다.
    참고

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

  2. SriovNetworkNodePolicy 오브젝트를 생성합니다.

    $ oc create -f policyoneflag-sriov-node-network.yaml

    구성 업데이트를 적용하면 sriov-network-operator 네임스페이스의 모든 Pod가 Running 상태로 변경됩니다.

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

    $ oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'

    출력 예

    Succeeded

24.8.2.2. SR-IOV 네트워크에서 sysctl 구성

SriovNetwork 리소스의 선택적 metaPlugins 매개변수에 튜닝 구성을 추가하여 SR-IOV에서 생성된 가상 인터페이스에 인터페이스별 sysctl 설정을 설정할 수 있습니다.

SR-IOV Network Operator는 추가 네트워크 정의를 관리합니다. 생성할 추가 SR-IOV 네트워크를 지정하면 SR-IOV Network Operator가 NetworkAttachmentDefinition CR(사용자 정의 리소스)을 자동으로 생성합니다.

참고

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

인터페이스 수준 네트워크 net.ipv4.conf.IFNAME.accept_redirects sysctl 설정을 변경하려면 CNI(Container Network Interface) 튜닝 플러그인을 사용하여 추가 SR-IOV 네트워크를 생성합니다.

사전 요구 사항

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

절차

  1. 추가 SR-IOV 네트워크 연결에 대한 SriovNetwork CR(사용자 정의 리소스)을 생성하고 다음 예제 CR과 같이 metaPlugins 구성을 삽입합니다. YAML을 sriov-network-interface-sysctl.yaml 파일로 저장합니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetwork
    metadata:
      name: onevalidflag 1
      namespace: openshift-sriov-network-operator 2
    spec:
      resourceName: policyoneflag 3
      networkNamespace: sysctl-tuning-test 4
      ipam: '{ "type": "static" }' 5
      capabilities: '{ "mac": true, "ips": true }' 6
      metaPlugins : | 7
        {
          "type": "tuning",
          "capabilities":{
            "mac":true
          },
          "sysctl":{
             "net.ipv4.conf.IFNAME.accept_redirects": "1"
          }
        }
    1
    오브젝트의 이름입니다. SR-IOV Network Operator는 동일한 이름으로 NetworkAttachmentDefinition 오브젝트를 생성합니다.
    2
    SR-IOV Network Operator가 설치된 네임스페이스입니다.
    3
    이 추가 네트워크에 대한 SR-IOV 하드웨어를 정의하는 SriovNetworkNodePolicy 오브젝트의 spec.resourceName 매개변수 값입니다.
    4
    SriovNetwork 오브젝트의 대상 네임스페이스입니다. 대상 네임스페이스의 포드만 추가 네트워크에 연결할 수 있습니다.
    5
    YAML 블록 스칼라 IPAM CNI 플러그인에 대한 구성 오브젝트입니다. 플러그인은 연결 정의에 대한 IP 주소 할당을 관리합니다.
    6
    선택 사항: 추가 네트워크에 대한 기능을 설정합니다. "{"ips": true}" 를 지정하여 IP 주소 지원을 활성화하거나 "{"mac":true}"를 지정하여 MAC 주소 지원을 활성화할 수 있습니다.
    7
    선택 사항: metaPlugins 매개변수는 장치에 기능을 추가하는 데 사용됩니다. 이 사용 사례에서 type 필드를 튜닝 으로 설정합니다. sysctl 필드에 설정할 인터페이스 수준 네트워크 sysctl 을 지정합니다.
  2. SriovNetwork 리소스를 생성합니다.

    $ oc create -f sriov-network-interface-sysctl.yaml

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

  • SR-IOV Network Operator가 다음 명령을 실행하여 NetworkAttachmentDefinition CR을 생성했는지 확인합니다.

    $ oc get network-attachment-definitions -n <namespace> 1
    1
    & lt;namespace >를 SriovNetwork 오브젝트에 지정한 networkNamespace 값으로 바꿉니다. 예를 들면 sysctl-tuning-test 입니다.

    출력 예

    NAME                                  AGE
    onevalidflag                          14m

    참고

    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": "onevalidflag",  1
              "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
    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. Pod CR을 생성합니다.

    $ oc apply -f examplepod.yaml
  3. 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.

    $ oc get pod -n sysctl-tuning-test

    출력 예

    NAME      READY   STATUS    RESTARTS   AGE
    tunepod   1/1     Running   0          47s

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

    $ oc rsh -n sysctl-tuning-test tunepod
  5. 구성된 sysctl 플래그의 값을 확인합니다. 다음 명령을 실행하여 net.ipv4.conf.IFNAME.accept_redirects 값을 찾습니다.

    $ sysctl net.ipv4.conf.net1.accept_redirects

    출력 예

    net.ipv4.conf.net1.accept_redirects = 1

24.8.3. 본딩 SR-IOV 인터페이스 플래그와 연결된 Pod의 sysctl 설정 구성

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

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

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

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

    $ oc create namespace sysctl-tuning-test

24.8.3.1. 본딩 SR-IOV 네트워크 장치가 있는 노드에서 모든 sysctl 플래그 설정

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

참고

SriovNetworkNodePolicy 오브젝트에 지정된 구성을 적용하면 SR-IOV Operator가 노드를 비우고 경우에 따라 노드를 재부팅할 수 있습니다.

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

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
    1
    사용자 정의 리소스 오브젝트의 이름입니다.
    2
    SR-IOV Network Operator가 설치된 네임스페이스입니다.
    3
    SR-IOV 네트워크 장치 플러그인의 리소스 이름입니다. 리소스 이름에 대한 SR-IOV 네트워크 노드 정책을 여러 개 생성할 수 있습니다.
    4
    노드 선택기는 구성할 노드를 지정합니다. 선택한 노드의 SR-IOV 네트워크 장치만 구성됩니다. SR-IOV CNI(Container Network Interface) 플러그인 및 장치 플러그인은 선택한 노드에만 배포됩니다.
    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 입니다. 베어 메탈 노드의 DPDK 모드에서 Mellanox NIC가 작동하려면 isRdmatrue 로 설정합니다.
    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

    구성 업데이트를 적용하면 sriov-network-operator 네임스페이스의 모든 Pod가 Running 상태로 변경됩니다.

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

    $ oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'

    출력 예

    Succeeded

24.8.3.2. 결합된 SR-IOV 네트워크에서 sysctl 구성

두 SR-IOV 인터페이스에서 생성된 본딩된 인터페이스에서 인터페이스별 sysctl 설정을 설정할 수 있습니다. 본딩 네트워크 연결 정의의 선택적 Plugins 매개변수에 튜닝 구성을 추가하여 이 작업을 수행합니다.

참고

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
    1
    오브젝트의 이름입니다. SR-IOV Network Operator는 동일한 이름으로 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
  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"
          }
        }
      ]
    }'
    1
    유형은 본딩 입니다.
    2
    mode 속성은 본딩 모드를 지정합니다. 지원되는 본딩 모드는 다음과 같습니다.
    • balance-rr - 0
    • active-backup - 1
    • balance-xor - 2

      balance-rr 또는 balance-xor 모드의 경우 SR-IOV 가상 기능에 대해 신뢰 모드를 on 으로 설정해야 합니다.

    3
    active-backup 모드에서는 페일오버 속성이 필요합니다.
    4
    linksInContainer=true 플래그는 Bond CNI에 컨테이너 내에서 필요한 인터페이스를 찾을 수 있음을 알립니다. 기본적으로 Bond CNI는 SRIOV 및 Multus와의 통합이 작동하지 않는 호스트에서 이러한 인터페이스를 찾습니다.
    5
    links 섹션에서는 본딩을 만드는 데 사용할 인터페이스를 정의합니다. 기본적으로 Multus는 연결된 인터페이스의 이름을 "net"으로 지정하고 연속된 수로 지정합니다.
    6
    YAML 블록 스칼라 IPAM CNI 플러그인에 대한 구성 오브젝트입니다. 플러그인은 연결 정의에 대한 IP 주소 할당을 관리합니다. 이 Pod 예제 IP 주소는 수동으로 구성되므로 이 경우ipam 은 static으로 설정됩니다.
    7
    장치에 기능을 추가합니다. 예를 들어 type 필드를 튜닝 으로 설정합니다. sysctl 필드에 설정할 인터페이스 수준 네트워크 sysctl 을 지정합니다. 이 예제에서는 설정할 수 있는 모든 인터페이스 수준 네트워크 sysctl 설정을 설정합니다.
  4. 본딩 네트워크 연결 리소스를 만듭니다.

    $ oc create -f sriov-bond-network-interface.yaml

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

  • SR-IOV Network Operator가 다음 명령을 실행하여 NetworkAttachmentDefinition CR을 생성했는지 확인합니다.

    $ oc get network-attachment-definitions -n <namespace> 1
    1
    & lt;namespace >를 네트워크 연결을 구성할 때 지정한 networkNamespace로 바꿉니다(예: sysctl-tuning-test ).

    출력 예

    NAME                          AGE
    bond-sysctl-network           22m
    allvalidflags                 47m

    참고

    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
    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
  3. 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.

    $ oc get pod -n sysctl-tuning-test

    출력 예

    NAME      READY   STATUS    RESTARTS   AGE
    tunepod   1/1     Running   0          47s

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

    $ oc rsh -n sysctl-tuning-test tunepod
  5. 구성된 sysctl 플래그의 값을 확인합니다. 다음 명령을 실행하여 net.ipv6.neigh.IFNAME.base_reachable_time_ms 값을 찾습니다.

    $ sysctl net.ipv6.neigh.bond0.base_reachable_time_ms

    출력 예

    net.ipv6.neigh.bond0.base_reachable_time_ms = 20000

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.