10장. 포드 레벨 본딩 사용
Pod 수준의 본딩은 고가용성과 처리량이 필요한 Pod 내부의 워크로드를 활성화하는 데 중요합니다. 포드 수준 본딩을 사용하면 커널 모드 인터페이스에서 여러 개의 단일 루트 I/O 가상화(SR-IOV) 가상 함수 인터페이스에서 본드 인터페이스를 생성할 수 있습니다. SR-IOV 가상 기능은 Pod에 전달되고 커널 드라이버에 연결됩니다.
포드 수준 본딩이 필요한 한 가지 시나리오는 서로 다른 물리적 기능의 여러 SR-IOV 가상 기능에서 본딩 인터페이스를 만드는 것입니다. 호스트에서 서로 다른 두 개의 물리적 기능으로부터 본드 인터페이스를 생성하면 포드 수준에서 높은 가용성과 처리량을 달성할 수 있습니다.
다음 문서의 작업을 수행하기 전에 SR-IOV 네트워크 운영자가 설치되어 있는지 확인하세요.
SR-IOV 네트워크, 네트워크 정책, 네트워크 연결 정의 및 Pod 생성과 같은 작업에 대한 지침은 SR-IOV 네트워크 장치 구성을 참조하세요.
10.1. 두 개의 SR-IOV 인터페이스에서 본드 인터페이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
본딩을 사용하면 여러 네트워크 인터페이스를 하나의 논리적인 "본딩된" 인터페이스로 집계할 수 있습니다. Bond Container Network Interface(Bond-CNI)는 컨테이너에 Bond 기능을 제공합니다.
Bond-CNI는 SR-IOV(Single Root I/O Virtualization) 가상 함수를 사용하여 생성하고 이를 컨테이너 네트워크 네임스페이스에 배치할 수 있습니다.
OpenShift Container Platform은 SR-IOV 가상 함수를 사용하는 Bond-CNI만 지원합니다. SR-IOV 네트워크 운영자는 가상 기능을 관리하는 데 필요한 SR-IOV CNI 플러그인을 제공합니다. 다른 CNI 또는 인터페이스 유형은 지원되지 않습니다.
사전 요구 사항
- 컨테이너에서 가상 기능을 얻으려면 SR-IOV 네트워크 운영자를 설치하고 구성해야 합니다.
- SR-IOV 인터페이스를 구성하려면 각 인터페이스에 대한 SR-IOV 네트워크와 정책을 만들어야 합니다.
- SR-IOV 네트워크 운영자는 SR-IOV 네트워크 및 정의된 정책을 기반으로 각 SR-IOV 인터페이스에 대한 네트워크 연결 정의를 만듭니다.
-
SR-IOV 가상 함수의 경우
linkState가
기본값인auto
로 설정됩니다.
10.1.1. 본드 네트워크 첨부 정의 생성 링크 복사링크가 클립보드에 복사되었습니다!
이제 SR-IOV 가상 함수를 사용할 수 있으므로 본드 네트워크 연결 정의를 만들 수 있습니다.
- 1
- cni-type은 항상
bond
로 설정됩니다. - 2
모드
속성은 본딩 모드를 지정합니다.참고지원되는 본딩 모드는 다음과 같습니다.
-
균형-rr
- 0 -
활성 백업
- 1 -
밸런스-xor
-2
balance-rr
또는balance-xor
모드의 경우 SR-IOV 가상 함수에 대한신뢰
모드를켜짐
으로 설정해야 합니다.-
- 3
장애 조치(failover)
속성은 액티브 백업 모드에 필수이며 1로 설정해야 합니다.- 4
linksInContainer=true
플래그는 필요한 인터페이스가 컨테이너 내부에서 발견된다는 것을 Bond CNI에 알립니다. 기본적으로 Bond CNI는 SRIOV 및 Multus와의 통합에 적합하지 않은 호스트에서 이러한 인터페이스를 찾습니다.- 5
링크
섹션은 본드를 생성하는 데 사용될 인터페이스를 정의합니다. 기본적으로 Multus는 연결된 인터페이스의 이름을 "net"과 1부터 시작하는 연속된 숫자로 지정합니다.
10.1.2. 본드 인터페이스를 사용하여 포드 생성 링크 복사링크가 클립보드에 복사되었습니다!
예를 들어
podbonding.yaml
이라는 이름의 YAML 파일로 포드를 만들어 설정을 테스트합니다. 파일의 내용은 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 네트워크 주석에 주목하세요. 여기에는 SR-IOV 네트워크 연결 2개와 본드 네트워크 연결 1개가 포함되어 있습니다. 본드 부착은 두 개의 SR-IOV 인터페이스를 본드 포트 인터페이스로 사용합니다.
다음 명령을 실행하여 yaml을 적용합니다.
oc apply -f podbonding.yaml
$ oc apply -f podbonding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 Pod 인터페이스를 검사하세요.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Pod 주석에 인터페이스 이름이 구성되지 않은 경우 인터페이스 이름은 자동으로
net<n>
으로 지정되며<n>
은1
부터 시작합니다.선택 사항: 예를 들어
bond0
과 같은 특정 인터페이스 이름을 설정하려면k8s.v1.cni.cncf.io/networks
주석을 편집하고 다음과 같이bond0을
인터페이스 이름으로 설정합니다.annotations: k8s.v1.cni.cncf.io/networks: demo/sriovnet1, demo/sriovnet2, demo/bond-net1@bond0
annotations: k8s.v1.cni.cncf.io/networks: demo/sriovnet1, demo/sriovnet2, demo/bond-net1@bond0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow