22.3. SR-IOV Network Operator 구성


SR-IOV(Single Root I/O Virtualization) Network Operator는 클러스터의 SR-IOV 네트워크 장치 및 네트워크 첨부 파일을 관리합니다.

22.3.1. SR-IOV Network Operator 구성

  • SriovOperatorConfig CR(사용자 정의 리소스)을 생성하여 모든 SR-IOV Operator 구성 요소를 배포합니다.

    1. 다음 YAML을 사용하여 sriovOperatorConfig.yaml 이라는 파일을 생성합니다.

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovOperatorConfig
      metadata:
        name: default
        namespace: openshift-sriov-network-operator
      spec:
        disableDrain: false
        enableInjector: true
        enableOperatorWebhook: true
        logLevel: 2
        featureGates:
          metricsExporter: false
      참고

      SriovOperatorConfig 리소스에 대한 유일한 유효한 이름은 default 이며 Operator가 배포된 네임스페이스에 있어야 합니다.

    2. 다음 명령을 실행하여 리소스를 생성합니다.

      $ oc apply -f sriovOperatorConfig.yaml

22.3.1.1. SR-IOV Network Operator 구성 사용자 정의 리소스

sriovoperatorconfig 사용자 정의 리소스의 필드는 다음 표에 설명되어 있습니다.

표 22.2. SR-IOV Network Operator 구성 사용자 정의 리소스
필드유형설명

metadata.name

string

SR-IOV Network Operator 인스턴스의 이름을 지정합니다. 기본값은 default입니다. 다른 값을 설정하지 마십시오.

metadata.namespace

string

SR-IOV Network Operator 인스턴스의 네임스페이스를 지정합니다. 기본값은 openshift-sriov-network-operator 입니다. 다른 값을 설정하지 마십시오.

spec.configDaemonNodeSelector

string

선택한 노드에서 SR-IOV 네트워크 구성 데몬 예약을 제어하는 노드 선택을 지정합니다. 기본적으로 이 필드는 설정되지 않으며 Operator는 작업자 노드에 SR-IOV Network Config 데몬 세트를 배포합니다.

spec.disableDrain

boolean

새 정책을 적용하여 노드에 NIC를 구성할 때 노드 드레이닝 프로세스를 비활성화하거나 노드 드레이닝 프로세스를 활성화할지 여부를 지정합니다. 이 필드를 true 로 설정하면 소프트웨어 개발 및 단일 노드에 OpenShift Container Platform을 쉽게 설치할 수 있습니다. 기본적으로 이 필드는 설정되지 않습니다.

단일 노드 클러스터의 경우 Operator를 설치한 후 이 필드를 true 로 설정합니다. 이 필드는 true 로 설정되어야 합니다.

spec.enableInjector

boolean

Network Resources Injector 데몬 세트를 활성화하거나 비활성화할지 여부를 지정합니다. 기본적으로 이 필드는 true 로 설정됩니다.

spec.enableOperatorWebhook

boolean

Operator Admission Controller webhook 데몬 세트를 활성화하거나 비활성화할지 여부를 지정합니다. 기본적으로 이 필드는 true 로 설정됩니다.

spec.logLevel

integer

Operator의 로그 상세 정보 표시 수준을 지정합니다. 기본 로그만 표시하려면 0 으로 설정합니다. 사용 가능한 모든 로그를 표시하려면 2 로 설정합니다. 기본적으로 이 필드는 2 로 설정됩니다.

spec.featureGates

map[string]bool

선택적 기능을 활성화하거나 비활성화할지 여부를 지정합니다. 예를 들면 metricsExporter 입니다.

spec.featureGates.metricsExporter

boolean

SR-IOV Network Operator 지표를 활성화하거나 비활성화할지 여부를 지정합니다. 기본적으로 이 필드는 false 로 설정됩니다.

22.3.1.2. Network Resources Injector 정보

Network Resources Injector는 Kubernetes Dynamic Admission Controller 애플리케이션입니다. 다음과 같은 기능을 제공합니다.

  • SR-IOV 네트워크 연결 정의 주석에 따라 SR-IOV 리소스 이름을 추가하기 위해 Pod 사양의 리소스 요청 및 제한 변경
  • Pod 사양을 Downward API 볼륨으로 변경하여 Pod 주석, 라벨 및 대규모 페이지 요청 및 제한을 노출합니다. pod에서 실행되는 컨테이너는 /etc/podnetinfo 경로에 있는 파일로 노출된 정보에 액세스할 수 있습니다.

기본적으로 Network Resources Injector는 SR-IOV Network Operator에 의해 활성화되며 모든 컨트롤 플레인 노드에서 데몬 세트로 실행됩니다. 다음은 3개의 컨트롤 플레인 노드가 있는 클러스터에서 실행 중인 Network Resources Injector Pod의 예입니다.

$ oc get pods -n openshift-sriov-network-operator

출력 예

NAME                                      READY   STATUS    RESTARTS   AGE
network-resources-injector-5cz5p          1/1     Running   0          10m
network-resources-injector-dwqpx          1/1     Running   0          10m
network-resources-injector-lktz5          1/1     Running   0          10m

22.3.1.3. SR-IOV 네트워크 Operator Admission Controller webhook 정보

SR-IOV 네트워크 Operator Admission Controller webhook은 Kubernetes Dynamic Admission Controller 애플리케이션입니다. 다음과 같은 기능을 제공합니다.

  • SriovNetworkNodePolicy CR이 생성 또는 업데이트될 때 유효성 검사
  • CR을 만들거나 업데이트할 때 prioritydeviceType 필드의 기본값을 설정하여 SriovNetworkNodePolicy CR 변경

기본적으로 SR-IOV 네트워크 Operator Admission Controller 웹 후크는 Operator에서 활성화하며 모든 컨트롤 플레인 노드에서 데몬 세트로 실행됩니다.

참고

SR-IOV 네트워크 Operator Admission Controller 웹 후크를 비활성화할 때 주의하십시오. 문제 해결 또는 지원되지 않는 장치를 사용하려는 경우 특정 상황에서 Webhook를 비활성화할 수 있습니다. 지원되지 않는 장치 구성에 대한 자세한 내용은 지원되지 않는 NIC를 사용하도록 SR-IOV Network Operator 구성을 참조하십시오.

다음은 3개의 컨트롤 플레인 노드가 있는 클러스터에서 실행되는 Operator Admission Controller 웹 후크 Pod의 예입니다.

$ oc get pods -n openshift-sriov-network-operator

출력 예

NAME                                      READY   STATUS    RESTARTS   AGE
operator-webhook-9jkw6                    1/1     Running   0          16m
operator-webhook-kbr5p                    1/1     Running   0          16m
operator-webhook-rpfrl                    1/1     Running   0          16m

22.3.1.4. 사용자 정의 노드 선택기 정보

SR-IOV Network Config 데몬은 클러스터 노드에서 SR-IOV 네트워크 장치를 검색하고 구성합니다. 기본적으로 클러스터의 모든 worker 노드에 배포됩니다. 노드 레이블을 사용하여 SR-IOV Network Config 데몬이 실행되는 노드를 지정할 수 있습니다.

22.3.1.5. Network Resources Injector 비활성화 또는 활성화

기본적으로 활성화되어 있는 Network Resources Injector를 비활성화하거나 활성화하려면 다음 절차를 완료하십시오.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • SR-IOV Network Operator가 설치되어 있어야 합니다.

프로세스

  • enableInjector 필드를 설정합니다. 기능을 비활성화하려면 <value>false로 바꾸고 기능을 활성화하려면 true로 바꿉니다.

    $ oc patch sriovoperatorconfig default \
      --type=merge -n openshift-sriov-network-operator \
      --patch '{ "spec": { "enableInjector": <value> } }'
    작은 정보

    또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovOperatorConfig
    metadata:
      name: default
      namespace: openshift-sriov-network-operator
    spec:
      enableInjector: <value>

22.3.1.6. SR-IOV 네트워크 Operator Admission Controller webhook 비활성화 또는 활성화

Admission Controller webhook를 비활성화하거나 활성화하려면(기본적으로 활성화되어 있음) 다음 절차를 완료하십시오.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • SR-IOV Network Operator가 설치되어 있어야 합니다.

프로세스

  • enableOperatorWebhook 필드를 설정합니다. 기능을 비활성화하려면 <value>false로 바꾸고 활성화하려면 true로 바꿉니다.

    $ oc patch sriovoperatorconfig default --type=merge \
      -n openshift-sriov-network-operator \
      --patch '{ "spec": { "enableOperatorWebhook": <value> } }'
    작은 정보

    또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovOperatorConfig
    metadata:
      name: default
      namespace: openshift-sriov-network-operator
    spec:
      enableOperatorWebhook: <value>

22.3.1.7. SR-IOV Network Config 데몬에 대한 사용자 정의 NodeSelector 구성

SR-IOV Network Config 데몬은 클러스터 노드에서 SR-IOV 네트워크 장치를 검색하고 구성합니다. 기본적으로 클러스터의 모든 worker 노드에 배포됩니다. 노드 레이블을 사용하여 SR-IOV Network Config 데몬이 실행되는 노드를 지정할 수 있습니다.

SR-IOV Network Config 데몬이 배포된 노드를 지정하려면 다음 절차를 완료하십시오.

중요

configDaemonNodeSelector 필드를 업데이트하면 선택한 각 노드에서 SR-IOV Network Config 데몬이 다시 생성됩니다. 데몬이 다시 생성되는 동안 클러스터 사용자는 새로운 SR-IOV 네트워크 노드 정책을 적용하거나 새로운 SR-IOV Pod를 만들 수 없습니다.

프로세스

  • Operator의 노드 선택기를 업데이트하려면 다음 명령을 입력합니다.

    $ oc patch sriovoperatorconfig default --type=json \
      -n openshift-sriov-network-operator \
      --patch '[{
          "op": "replace",
          "path": "/spec/configDaemonNodeSelector",
          "value": {<node_label>}
        }]'

    "node-role.kubernetes.io/worker": ""에서와 같이 적용하려면 <node_label>을 레이블로 바꿉니다.

    작은 정보

    또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovOperatorConfig
    metadata:
      name: default
      namespace: openshift-sriov-network-operator
    spec:
      configDaemonNodeSelector:
        <node_label>

22.3.1.8. 단일 노드 설치를 위한 SR-IOV Network Operator 구성

기본적으로 SR-IOV Network Operator는 모든 정책이 변경되기 전에 노드에서 워크로드를 드레이닝합니다. Operator는 이 작업을 수행하여 재구성 전에 가상 기능을 사용하여 워크로드가 없는지 확인합니다.

단일 노드에 설치하는 경우 워크로드를 수신할 다른 노드가 없습니다. 결과적으로 단일 노드에서 워크로드를 드레이닝하지 않도록 Operator를 구성해야 합니다.

중요

워크로드 드레이닝을 비활성화하려면 SR-IOV 네트워크 노드 정책을 변경하기 전에 SR-IOV 네트워크 인터페이스를 사용하는 모든 워크로드를 제거해야 합니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • SR-IOV Network Operator가 설치되어 있어야 합니다.

절차

  • disableDrain 필드를 true 로 설정하고 configDaemonNodeSelector 필드를 node-role.kubernetes.io/master: "" 로 설정하려면 다음 명령을 입력합니다.

    $ oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "disableDrain": true, "configDaemonNodeSelector": { "node-role.kubernetes.io/master": "" } } }'
    작은 정보

    또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovOperatorConfig
    metadata:
      name: default
      namespace: openshift-sriov-network-operator
    spec:
      disableDrain: true
      configDaemonNodeSelector:
       node-role.kubernetes.io/master: ""

22.3.1.9. 호스트된 컨트롤 플레인을 위한 SR-IOV Operator 배포

호스팅 서비스 클러스터를 구성하고 배포한 후 호스팅된 클러스터에서 SR-IOV Operator에 대한 서브스크립션을 생성할 수 있습니다. SR-IOV Pod는 컨트롤 플레인이 아닌 작업자 머신에서 실행됩니다.

사전 요구 사항

AWS에 호스팅 클러스터를 구성하고 배포해야 합니다.

절차

  1. 네임스페이스 및 Operator 그룹을 생성합니다.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-sriov-network-operator
    ---
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: sriov-network-operators
      namespace: openshift-sriov-network-operator
    spec:
      targetNamespaces:
      - openshift-sriov-network-operator
  2. SR-IOV Operator에 대한 서브스크립션을 생성합니다.

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: sriov-network-operator-subsription
      namespace: openshift-sriov-network-operator
    spec:
      channel: stable
      name: sriov-network-operator
      config:
        nodeSelector:
          node-role.kubernetes.io/worker: ""
      source: s/qe-app-registry/redhat-operators
      sourceNamespace: openshift-marketplace

검증

  1. SR-IOV Operator가 준비되었는지 확인하려면 다음 명령을 실행하고 결과 출력을 확인합니다.

    $ oc get csv -n openshift-sriov-network-operator

    출력 예

    NAME                                         DISPLAY                   VERSION               REPLACES                                     PHASE
    sriov-network-operator.4.17.0-202211021237   SR-IOV Network Operator   4.17.0-202211021237   sriov-network-operator.4.17.0-202210290517   Succeeded

  2. SR-IOV Pod가 배포되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get pods -n openshift-sriov-network-operator

22.3.2. SR-IOV 네트워크 지표 내보내기 정보

SR-IOV(Single Root I/O Virtualization) 네트워크 지표 내보내기는 SR-IOV 가상 기능(VF)의 지표를 읽고 이러한 VF 지표를 Prometheus 형식으로 노출합니다. SR-IOV 네트워크 지표 내보내기가 활성화되면 OpenShift Container Platform 웹 콘솔을 사용하여 SR-IOV Pod의 네트워킹 활동을 모니터링하여 SR-IOV VF 지표를 쿼리할 수 있습니다.

웹 콘솔을 사용하여 SR-IOV VF 지표를 쿼리하면 SR-IOV 네트워크 지표 내보내기가 VF 네트워크 통계를 가져오고 VF가 연결된 Pod의 이름 및 네임스페이스와 함께 VF 네트워크 통계를 반환합니다.

메트릭 내보내기가 읽고 Prometheus 형식으로 표시하는 SR-IOV VF 지표는 다음 표에 설명되어 있습니다.

표 22.3. SR-IOV VF 지표
지표설명VF 메트릭을 검사하는 PromQL 쿼리의 예

sriov_vf_rx_bytes

가상 기능당 바이트를 수신했습니다.

sriov_vf_rx_bytes * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_tx_bytes

가상 기능당 전송된 바이트 수입니다.

sriov_vf_tx_bytes * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_rx_packets

가상 기능당 패킷을 수신했습니다.

sriov_vf_rx_packets * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_tx_packets

가상 기능당 전송된 패킷.

sriov_vf_tx_packets * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_rx_dropped

가상 기능당 수신 시 패킷을 삭제했습니다.

sriov_vf_rx_dropped * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_tx_dropped

가상 기능당 전송 중에 패킷이 삭제됨.

sriov_vf_tx_dropped * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_rx_multicast

가상 기능당 멀티 캐스트 패킷을 수신했습니다.

sriov_vf_rx_multicast * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_vf_rx_broadcast

가상 기능당 브로드캐스트 패킷을 수신했습니다.

sriov_vf_rx_broadcast * on (pciAddr,node) group_left(pod,namespace,dev_type) sriov_kubepoddevice

sriov_kubepoddevice

가상 기능은 활성 Pod에 연결됩니다.

-

이러한 쿼리를 kube-state-metrics와 결합하여 SR-IOV Pod에 대한 자세한 정보를 얻을 수도 있습니다. 예를 들어 다음 쿼리를 사용하여 표준 Kubernetes Pod 라벨에서 애플리케이션 이름과 함께 VF 네트워크 통계를 가져올 수 있습니다.

(sriov_vf_tx_packets * on (pciAddr,node)  group_left(pod,namespace)  sriov_kubepoddevice) * on (pod,namespace) group_left (label_app_kubernetes_io_name) kube_pod_labels

22.3.2.1. SR-IOV 네트워크 지표 내보내기 활성화

SR-IOV(Single Root I/O Virtualization) 네트워크 지표 내보내기는 기본적으로 비활성화되어 있습니다. 메트릭 내보내기를 활성화하려면 spec.featureGates.metricsExporter 필드를 true 로 설정해야 합니다.

중요

메트릭 내보내기가 활성화되면 SR-IOV Network Operator는 SR-IOV 기능이 있는 노드에만 메트릭 내보내기를 배포합니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • SR-IOV Network Operator가 설치되어 있습니다.

프로세스

  1. 다음 명령을 실행하여 클러스터 모니터링을 활성화합니다.

    $ oc label ns/openshift-sriov-network-operator openshift.io/cluster-monitoring=true

    클러스터 모니터링을 활성화하려면 SR-IOV Network Operator를 설치한 네임스페이스에 openshift.io/cluster-monitoring=true 레이블을 추가해야 합니다.

  2. 다음 명령을 실행하여 spec.featureGates.metricsExporter 필드를 true 로 설정합니다.

    $ oc patch -n openshift-sriov-network-operator sriovoperatorconfig/default \
        --type='merge' -p='{"spec": {"featureGates": {"metricsExporter": true}}}'

검증

  1. 다음 명령을 실행하여 SR-IOV 네트워크 지표 내보내기가 활성화되어 있는지 확인합니다.

    $ oc get pods -n openshift-sriov-network-operator

    출력 예

    NAME                                     READY   STATUS    RESTARTS   AGE
    operator-webhook-hzfg4                   1/1     Running   0          5d22h
    sriov-network-config-daemon-tr54m        1/1     Running   0          5d22h
    sriov-network-metrics-exporter-z5d7t     1/1     Running   0          10s
    sriov-network-operator-cc6fd88bc-9bsmt   1/1     Running   0          5d22h

    sriov-network-metrics-exporter Pod는 READY 상태에 있어야 합니다.

  2. 선택사항: OpenShift Container Platform 웹 콘솔을 사용하여 SR-IOV VF(가상 기능) 메트릭을 테스트합니다. 자세한 내용은 "Querying metrics"을 참조하십시오.

22.3.3. 다음 단계

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.