5.4. all-multicast 모드 정보
특히 rootless 애플리케이션 컨텍스트에서 모든 멀티 캐스트 모드를 활성화하는 것이 중요합니다. 이 모드를 활성화하지 않으면 Pod의 SCC(보안 컨텍스트 제약 조건)에 NET_ADMIN
기능을 부여해야 합니다. NET_ADMIN
기능을 허용하여 Pod 권한을 부여하여 특정 요구 사항을 초과하는 변경을 수행할 수 있는 경우 보안 취약점을 잠재적으로 노출할 수 있습니다.
튜닝 CNI 플러그인은 all-multicast 모드를 포함하여 여러 인터페이스 속성 변경을 지원합니다. 이 모드를 활성화하면 SR-IOV 네트워크 장치에서 구성된 VF(가상 기능)에서 실행되는 애플리케이션에서 동일한 물리적 기능에 연결된 다른 VF의 애플리케이션에서 멀티 캐스트 트래픽을 수신하도록 허용할 수 있습니다.
5.4.1. SR-IOV 네트워크에서 all-multicast 모드 활성화 링크 복사링크가 클립보드에 복사되었습니다!
다음을 통해 SR-IOV 인터페이스에서 all-multicast 모드를 활성화할 수 있습니다.
-
SriovNetwork
리소스의metaPlugins
매개변수에 튜닝 구성 추가 튜닝 구성에서
allmulti
필드를true
로 설정참고신뢰가 활성화된 VF(가상 기능)를 생성해야 합니다.
SR-IOV Network Operator는 추가 네트워크 정의를 관리합니다. 생성할 추가 SR-IOV 네트워크를 지정하면 SR-IOV Network Operator가 NetworkAttachmentDefinition
CR(사용자 정의 리소스)을 자동으로 생성합니다.
SR-IOV Network Operator가 관리하는 NetworkAttachmentDefinition
사용자 정의 리소스를 편집하지 마십시오. 편집하면 추가 네트워크의 네트워크 트래픽이 중단될 수 있습니다.
이 지침에 따라 SR-IOV 네트워크에서 all-multicast 모드를 활성화합니다.
사전 요구 사항
- OpenShift Container Platform CLI(oc)가 설치되어 있습니다.
-
cluster-admin
권한이 있는 사용자로 OpenShift Container Platform 클러스터에 로그인되어 있습니다. - SR-IOV Network Operator가 설치되어 있습니다.
-
적절한
SriovNetworkNodePolicy
오브젝트를 구성했습니다.
프로세스
Mellanox ConnectX-5 장치에 대한
SriovNetworkNodePolicy
오브젝트를 정의하는 다음 설정으로 YAML 파일을 생성합니다. YAML 파일을sriovnetpolicy-mlx.yaml
로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항: SR-IOV 가능 클러스터 노드에 레이블이 지정되지 않은 경우
SriovNetworkNodePolicy.Spec.NodeSelector
라벨을 추가합니다. 노드 레이블 지정에 대한 자세한 내용은 "노드에서 라벨을 업데이트하는 방법 이해"를 참조하십시오. 다음 명령을 실행하여
SriovNetworkNodePolicy
오브젝트를 생성합니다.oc create -f sriovnetpolicy-mlx.yaml
$ oc create -f sriovnetpolicy-mlx.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 업데이트를 적용하면
sriov-network-operator
네임스페이스의 모든 Pod가Running
상태로 자동으로 이동합니다.다음 명령을 실행하여
enable-allmulti-test
네임스페이스를 생성합니다.oc create namespace enable-allmulti-test
$ oc create namespace enable-allmulti-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 추가 SR-IOV 네트워크 연결에 대한
SriovNetwork
CR(사용자 정의 리소스)을 생성하고 다음 예제 CR YAML과 같이metaPlugins
구성을 삽입하고 파일을sriov-enable-all-multicast.yaml
로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 오브젝트의 이름을 지정합니다. SR-IOV Network Operator는 동일한 이름으로
NetworkAttachmentDefinition
오브젝트를 생성합니다. - 2
- SR-IOV Network Operator가 설치된 네임스페이스를 지정합니다.
- 3
- 이 추가 네트워크에 대한 SR-IOV 하드웨어를 정의하는
SriovNetworkNodePolicy
오브젝트에서spec.resourceName
매개변수 값을 지정합니다. - 4
SriovNetwork
오브젝트의 대상 네임스페이스를 지정합니다. 대상 네임스페이스의 포드만 추가 네트워크에 연결할 수 있습니다.- 5
- IPAM CNI 플러그인의 구성 오브젝트를 YAML 블록 스칼라로 지정합니다. 플러그인은 연결 정의에 대한 IP 주소 할당을 관리합니다.
- 6
- 선택 사항: 추가 네트워크에 대한 기능을 설정합니다.
"{"ips": true}"
를 지정하여 IP 주소 지원을 활성화하거나"{"mac":true}"
를 지정하여 MAC 주소 지원을 활성화할 수 있습니다. - 7
- 가상 기능의 신뢰 모드를 지정합니다. 이 값을 "on"으로 설정해야 합니다.
- 8
metaPlugins
매개변수를 사용하여 장치에 더 많은 기능을 추가합니다. 이 사용 사례에서type
필드를조정
하도록 설정하고allmulti
필드를 추가하고true
로 설정합니다.
다음 명령을 실행하여
SriovNetwork
리소스를 생성합니다.oc create -f sriov-enable-all-multicast.yaml
$ oc create -f sriov-enable-all-multicast.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NetworkAttachmentDefinition
CR 확인
SR-IOV Network Operator가 다음 명령을 실행하여
NetworkAttachmentDefinition
CR을 생성했는지 확인합니다.oc get network-attachment-definitions -n <namespace>
$ oc get network-attachment-definitions -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- &
lt;namespace
>를SriovNetwork
오브젝트에 지정한networkNamespace
값으로 바꿉니다. 이 예제에서는enable-allmulti-test
입니다. 예상되는 출력에는 CryostatD CR의 이름과 생성 기간이 분 단위로 표시됩니다.
참고SR-IOV Network Operator가 CR을 생성하기 전에 지연이 발생할 수 있습니다.
다음 명령을 실행하여 SR-IOV 네트워크 리소스에 대한 정보를 표시합니다.
oc get sriovnetwork -n openshift-sriov-network-operator
$ oc get sriovnetwork -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
추가 SR-IOV 네트워크 연결 확인
튜닝 CNI가 올바르게 구성되어 추가 SR-IOV 네트워크 연결이 연결되었는지 확인하려면 다음 단계를 따르십시오.
Pod
CR을 생성합니다. 다음 샘플 YAML을examplepod.yaml
이라는 파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 }
도 지정해야 합니다.
다음 명령을 실행하여
Pod
CR을 생성합니다.oc apply -f examplepod.yaml
$ oc apply -f examplepod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.
oc get pod -n enable-allmulti-test
$ oc get pod -n enable-allmulti-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE samplepod 1/1 Running 0 47s
NAME READY STATUS RESTARTS AGE samplepod 1/1 Running 0 47s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod에 로그인합니다.
oc rsh -n enable-allmulti-test samplepod
$ oc rsh -n enable-allmulti-test samplepod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod와 관련된 모든 인터페이스를 나열합니다.
ip link
sh-4.4# ip link
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow