10.2. SR-IOV Network Operator 구성
SR-IOV(Single Root I/O Virtualization) Network Operator는 클러스터의 SR-IOV 네트워크 장치 및 네트워크 첨부 파일을 관리합니다.
10.2.1. SR-IOV Network Operator 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 SR-IOV Operator 구성 요소를 배포하기 위해
SriovOperatorConfig
사용자 지정 리소스(CR)를 만듭니다.다음 YAML을 사용하여
sriovOperatorConfig.yaml
이라는 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
SriovOperatorConfig
리소스에 유효한 이름은기본값
뿐이며 Operator가 배포된 네임스페이스에 있어야 합니다.- 2
- CR에 지정되지 않았거나 명시적으로
true
로 설정된 경우enableInjector
필드는false
또는<none>
으로 기본 설정되어 네임스페이스에서network-resources-injector
포드가 실행되지 않습니다. 권장 설정은true
입니다. - 3
- CR에 지정되지 않았거나 명시적으로 true로 설정된 경우
enableOperatorWebhook
필드는false
또는<none>
으로 기본 설정되어 네임스페이스에서 모든operator-webhook
포드가 실행되지 않습니다. 권장 설정은true
입니다.
다음 명령을 실행하여 리소스를 생성합니다.
oc apply -f sriovOperatorConfig.yaml
$ oc apply -f sriovOperatorConfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1.1. SR-IOV 네트워크 운영자 구성 사용자 정의 리소스 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 sriovoperatorconfig
사용자 정의 리소스에 대한 필드에 대해 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
SR-IOV 네트워크 운영자 인스턴스의 이름을 지정합니다. 기본값은 |
|
|
SR-IOV 네트워크 운영자 인스턴스의 네임스페이스를 지정합니다. 기본값은 |
|
| 선택한 노드에서 SR-IOV 네트워크 구성 데몬의 스케줄링을 제어하기 위한 노드 선택을 지정합니다. 기본적으로 이 필드는 설정되지 않으며 운영자는 작업자 노드에 설정된 SR-IOV 네트워크 구성 데몬을 배포합니다. |
|
|
노드에서 NIC를 구성하기 위해 새 정책을 적용할 때 노드 드레이닝 프로세스를 비활성화할지 아니면 활성화할지를 지정합니다. 이 필드를
단일 노드 클러스터의 경우 Operator를 설치한 후 이 필드를 |
|
| 네트워크 리소스 인젝터 데몬 세트를 활성화할지 비활성화할지 지정합니다. |
|
| Operator Admission Controller 웹후크 데몬 세트를 활성화할지 비활성화할지 지정합니다. |
|
|
연산자의 로그 세부 정보 수준을 지정합니다. 기본적으로 이 필드는 |
|
|
옵션 기능을 활성화할지 비활성화할지 지정합니다. 예를 들어, |
|
|
SR-IOV 네트워크 운영자 메트릭을 활성화할지 비활성화할지 지정합니다. 기본적으로 이 필드는 |
|
|
SR-IOV 네트워크 운영자의 가상 기능(VF) 변경 시 펌웨어를 재설정할지 여부를 지정합니다. Intel C740 시리즈와 같은 일부 칩셋은 NVIDIA/Mellanox NIC에서 VF를 구성하는 데 필요한 PCI-E 장치의 전원을 완전히 끄지 않습니다. 기본적으로 이 필드는 중요
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오. |
10.2.1.2. Network Resources Injector 정보 링크 복사링크가 클립보드에 복사되었습니다!
Network Resources Injector는 다음과 같은 기능을 제공하는 Kubernetes Dynamic Admission Controller 애플리케이션입니다.
- SR-IOV 네트워크 연결 정의 주석에 따라 SR-IOV 리소스 이름을 추가하기 위해 Pod 사양의 리소스 요청 및 제한 변경
-
Pod 사양을 Downward API 볼륨으로 변경하여 Pod 주석, 라벨 및 대규모 페이지 요청 및 제한을 노출합니다. pod에서 실행되는 컨테이너는
/etc/podnetinfo
경로에 있는 파일로 노출된 정보에 액세스할 수 있습니다.
네트워크 리소스 인젝터는 SriovOperatorConfig
CR에서 enableInjector가
true
로 설정된 경우 SR-IOV 네트워크 운영자에 의해 활성화됩니다. 네트워크 리소스 인젝터
포드는 모든 제어 평면 노드에서 데몬 세트로 실행됩니다. 다음은 3개의 컨트롤 플레인 노드가 있는 클러스터에서 실행 중인 Network Resources Injector Pod의 예입니다.
oc get pods -n openshift-sriov-network-operator
$ 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
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
기본적으로 Network Resources Injector 웹후크의 failurePolicy
필드는 Ignore
로 설정됩니다. 이 기본 설정은 웹훅을 사용할 수 없는 경우 포드 생성이 차단되는 것을 방지합니다.
failurePolicy
필드를 Fail
로 설정하고 Network Resources Injector 웹훅을 사용할 수 없는 경우 웹훅은 모든 Pod 생성 및 업데이트 요청을 변형하려고 시도합니다. 이러한 동작으로 인해 Pod 생성이 차단되고 정상적인 클러스터 작업이 중단될 수 있습니다. 이러한 문제를 방지하려면 SriovOperatorConfig
개체에서 featureGates.resourceInjectorMatchCondition
기능을 활성화하여 네트워크 리소스 인젝터 웹훅의 범위를 제한할 수 있습니다. 이 기능을 활성화하면 웹훅은 보조 네트워크 주석 k8s.v1.cni.cncf.io/networks가
있는 포드에만 적용됩니다.
resourceInjectorMatchCondition
기능을 활성화한 후 failurePolicy
필드를 Fail
로 설정하면 웹훅은 보조 네트워크 주석 k8s.v1.cni.cncf.io/networks가
있는 포드에만 적용됩니다. 웹훅을 사용할 수 없는 경우 이 주석이 없는 포드는 계속 배포되므로 클러스터 작업이 불필요하게 중단되는 것을 방지할 수 있습니다.
featureGates.resourceInjectorMatchCondition
기능은 기본적으로 비활성화되어 있습니다. 이 기능을 활성화하려면 SriovOperatorConfig
개체에서 featureGates.resourceInjectorMatchCondition
필드를 true
로 설정합니다.
SriovOperatorConfig
객체 구성 예
10.2.1.3. 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> } }'
$ oc patch sriovoperatorconfig default \ --type=merge -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableInjector": <value> } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1.4. SR-IOV 네트워크 Operator Admission Controller webhook 정보 링크 복사링크가 클립보드에 복사되었습니다!
SR-IOV 네트워크 Operator Admission Controller webhook은 Kubernetes Dynamic Admission Controller 애플리케이션입니다. 다음과 같은 기능을 제공합니다.
-
SriovNetworkNodePolicy
CR이 생성 또는 업데이트될 때 유효성 검사 -
CR을 만들거나 업데이트할 때
priority
및deviceType
필드의 기본값을 설정하여SriovNetworkNodePolicy
CR 변경
SR-IOV 네트워크 운영자 입장 컨트롤러 웹훅은 SriovOperatorConfig
CR에서 enableOperatorWebhook
이 true
로 설정된 경우 운영자에 의해 활성화됩니다. operator-webhook
포드는 모든 제어 평면 노드에서 데몬 세트로 실행됩니다.
SR-IOV 네트워크 운영자 입장 컨트롤러 웹훅을 비활성화할 때는 주의하세요. 문제 해결이나 지원되지 않는 기기를 사용하려는 경우와 같이 특정 상황에서는 웹훅을 비활성화할 수 있습니다. 지원되지 않는 장치를 구성하는 방법에 대한 자세한 내용은 지원되지 않는 NIC를 사용하도록 SR-IOV 네트워크 운영자 구성을 참조하세요.
다음은 3개의 컨트롤 플레인 노드가 있는 클러스터에서 실행되는 Operator Admission Controller 웹 후크 Pod의 예입니다.
oc get pods -n openshift-sriov-network-operator
$ 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
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
10.2.1.5. SR-IOV 네트워크 Operator 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> } }'
$ oc patch sriovoperatorconfig default --type=merge \ -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableOperatorWebhook": <value> } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1.6. 사용자 정의 노드 선택기 정보 링크 복사링크가 클립보드에 복사되었습니다!
SR-IOV Network Config 데몬은 클러스터 노드에서 SR-IOV 네트워크 장치를 검색하고 구성합니다. 기본적으로 클러스터의 모든 worker
노드에 배포됩니다. 노드 레이블을 사용하여 SR-IOV Network Config 데몬이 실행되는 노드를 지정할 수 있습니다.
10.2.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의 노드 선택기를 업데이트하려면 다음 명령을 입력합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow "node-role.kubernetes.io/worker": ""
에서와 같이 적용하려면<node_label>
을 레이블로 바꿉니다.작은 정보또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1.8. 단일 노드 설치를 위한 SR-IOV 네트워크 운영자 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 SR-IOV 네트워크 운영자는 정책이 변경되기 전에 노드에서 작업 부하를 제거합니다. 운영자는 재구성 전에 가상 기능을 사용하는 작업 부하가 없는지 확인하기 위해 이 작업을 수행합니다.
단일 노드에 설치하는 경우 작업 부하를 수신할 다른 노드가 없습니다. 따라서 운영자는 단일 노드에서 작업 부하를 소모하지 않도록 구성되어야 합니다.
드레이닝 워크로드를 비활성화하기 위해 다음 절차를 수행한 후에는 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": "" } } }'
$ oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "disableDrain": true, "configDaemonNodeSelector": { "node-role.kubernetes.io/master": "" } } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보또는 다음 YAML을 적용하여 Operator를 업데이트할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1.9. 호스트된 컨트롤 플레인을 위한 SR-IOV Operator 배포 링크 복사링크가 클립보드에 복사되었습니다!
호스팅 서비스 클러스터를 구성하고 배포한 후 호스팅된 클러스터에서 SR-IOV Operator에 대한 서브스크립션을 생성할 수 있습니다. SR-IOV Pod는 컨트롤 플레인이 아닌 작업자 머신에서 실행됩니다.
사전 요구 사항
AWS에 호스팅 클러스터를 구성하고 배포해야 합니다.
프로세스
네임스페이스 및 Operator 그룹을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV Operator에 대한 서브스크립션을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
SR-IOV Operator가 준비되었는지 확인하려면 다음 명령을 실행하고 결과 출력을 확인합니다.
oc get csv -n openshift-sriov-network-operator
$ oc get csv -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME DISPLAY VERSION REPLACES PHASE sriov-network-operator.4.19.0-202211021237 SR-IOV Network Operator 4.19.0-202211021237 sriov-network-operator.4.19.0-202210290517 Succeeded
NAME DISPLAY VERSION REPLACES PHASE sriov-network-operator.4.19.0-202211021237 SR-IOV Network Operator 4.19.0-202211021237 sriov-network-operator.4.19.0-202210290517 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV Pod가 배포되었는지 확인하려면 다음 명령을 실행합니다.
oc get pods -n openshift-sriov-network-operator
$ oc get pods -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.2. SR-IOV 네트워크 메트릭 내보내기 정보 링크 복사링크가 클립보드에 복사되었습니다!
단일 루트 I/O 가상화(SR-IOV) 네트워크 메트릭 내보내기 프로그램은 SR-IOV 가상 함수(VF)에 대한 메트릭을 읽고 이러한 VF 메트릭을 Prometheus 형식으로 노출합니다. SR-IOV 네트워크 메트릭 내보내기 기능이 활성화된 경우 OpenShift Container Platform 웹 콘솔을 사용하여 SR-IOV VF 메트릭을 쿼리하여 SR-IOV 포드의 네트워킹 활동을 모니터링할 수 있습니다.
웹 콘솔을 사용하여 SR-IOV VF 메트릭을 쿼리하면 SR-IOV 네트워크 메트릭 내보내기 도구가 VF가 연결된 Pod의 이름과 네임스페이스와 함께 VF 네트워크 통계를 가져와서 반환합니다.
다음 표에서는 메트릭 내보내기 프로그램이 Prometheus 형식으로 읽고 노출하는 SR-IOV VF 메트릭에 대해 설명합니다.
지표 | 설명 | VF 메트릭을 조사하기 위한 PromQL 쿼리 예 |
---|---|---|
| 가상 함수당 수신된 바이트. |
|
| 가상 함수당 전송된 바이트. |
|
| 가상 함수당 수신된 패킷. |
|
| 가상 함수당 전송된 패킷. |
|
| 가상 함수당 수신 시 패킷이 삭제됩니다. |
|
| 가상 함수당 전송 중에 삭제된 패킷. |
|
| 가상 함수당 수신된 멀티캐스트 패킷. |
|
| 가상 함수당 수신된 브로드캐스트 패킷. |
|
| 활성 포드에 연결된 가상 함수입니다. | - |
이러한 쿼리를 kube-state-metrics와 결합하여 SR-IOV 포드에 대한 자세한 정보를 얻을 수도 있습니다. 예를 들어, 다음 쿼리를 사용하면 표준 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
(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
10.2.2.1. SR-IOV 네트워크 메트릭 내보내기 활성화 링크 복사링크가 클립보드에 복사되었습니다!
단일 루트 I/O 가상화(SR-IOV) 네트워크 메트릭 내보내기 기능은 기본적으로 비활성화되어 있습니다. 메트릭 내보내기 기능을 활성화하려면 spec.featureGates.metricsExporter
필드를 true
로 설정해야 합니다.
메트릭 내보내기 기능이 활성화된 경우, SR-IOV 네트워크 운영자는 SR-IOV 기능이 있는 노드에만 메트릭 내보내기 기능을 배포합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 로그인했습니다. - SR-IOV Network Operator가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 클러스터 모니터링을 활성화하세요.
oc label ns/openshift-sriov-network-operator openshift.io/cluster-monitoring=true
$ oc label ns/openshift-sriov-network-operator openshift.io/cluster-monitoring=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 모니터링을 활성화하려면 SR-IOV 네트워크 운영자를 설치한 네임스페이스에
openshift.io/cluster-monitoring=true
레이블을 추가해야 합니다.다음 명령을 실행하여
spec.featureGates.metricsExporter
필드를true
로 설정합니다.oc patch -n openshift-sriov-network-operator sriovoperatorconfig/default \ --type='merge' -p='{"spec": {"featureGates": {"metricsExporter": true}}}'
$ oc patch -n openshift-sriov-network-operator sriovoperatorconfig/default \ --type='merge' -p='{"spec": {"featureGates": {"metricsExporter": true}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 SR-IOV 네트워크 메트릭 내보내기가 활성화되었는지 확인하세요.
oc get pods -n openshift-sriov-network-operator
$ oc get pods -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sriov-network-metrics-exporter
포드는READY
상태여야 합니다.- 선택 사항: OpenShift Container Platform 웹 콘솔을 사용하여 SR-IOV 가상 함수(VF) 메트릭을 조사합니다. 자세한 내용은 "메트릭 쿼리"를 참조하세요.