12.3. SR-IOV Network Operator 구성

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

12.3.1. SR-IOV Network Operator 구성

중요

SR-IOV Network Operator 구성 수정은 일반적으로 필요하지 않습니다. 대부분의 사용 사례에는 기본 구성이 권장됩니다. Operator의 기본 동작이 사용 사례와 호환되지 않는 경우에만 관련 구성을 수정하는 단계를 완료하십시오.

SR-IOV Network Operator는 SriovOperatorConfig.sriovnetwork.openshift.io CustomResourceDefinition 리소스를 추가합니다. Operator는 openshift-sriov-network-operator 네임스페이스에 default라는 SriovOperatorConfig CR(사용자 정의 리소스)을 자동으로 만듭니다.

참고

default CR에는 클러스터에 대한 SR-IOV Network Operator 구성이 포함됩니다. Operator 구성을 변경하려면 이 CR을 수정해야 합니다.

SriovOperatorConfig 오브젝트는 Operator 구성을 위한 몇 가지 필드를 제공합니다.

  • enableInjector를 사용하면 프로젝트 관리자가 Network Resources Injector 데몬 세트를 활성화하거나 비활성화할 수 있습니다.
  • enableOperatorWebhook을 사용하면 프로젝트 관리자가 Operator Admission Controller 웹 후크 데몬 세트를 활성화하거나 비활성화할 수 있습니다.
  • configDaemonNodeSelector를 사용하면 프로젝트 관리자가 선택된 노드에서 SR-IOV Network Config Daemon을 예약할 수 있습니다.

12.3.1.1. Network Resources Injector 정보

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

  • SR-IOV 네트워크 연결 정의 주석에 따라 SR-IOV 리소스 이름을 추가하기 위해 Pod 사양의 리소스 요청 및 제한 변경
  • 하향식 API 볼륨으로 Pod 사양을 변경하여 Pod 주석 및 레이블을 실행 중인 컨테이너에 /etc/podnetinfo 경로의 파일로 노출합니다.

기본적으로 Network Resources Injector는 SR-IOV 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

12.3.1.2. 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 webhook은 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

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

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

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

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

사전 요구 사항

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

프로세스

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

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

12.3.1.5. SR-IOV Operator Admission Controller webhook 비활성화 또는 활성화

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

사전 요구 사항

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

프로세스

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

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

12.3.1.6. 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>을 레이블로 바꿉니다.