3.2. 다른 CNI 플러그인을 사용하여 보조 네트워크 생성
다음 섹션에서는 보조 네트워크의 구체적인 구성 필드에 대해 설명합니다.
3.2.1. 브리지 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 객체는 Bridge CNI 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. |
|
|
이전에 CNO 구성에 대해 제공한 |
|
|
구성할 CNI 플러그인의 이름: |
|
| IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다. |
|
|
선택 사항: 사용할 가상 브리지의 이름을 지정합니다. 브릿지 인터페이스가 호스트에 없으면 생성됩니다. 기본값은 |
|
|
선택 사항: 가상 네트워크를 벗어나는 트래픽에 대해 IP 마스킹을 활성화하려면 |
|
|
선택 사항: 브리지에 IP 주소를 할당하려면 |
|
|
선택 사항: 브리지를 가상 네트워크의 기본 게이트웨이로 구성하려면 |
|
|
선택 사항: 이전에 할당된 IP 주소를 가상 브리지에 할당하도록 허용하려면 |
|
|
선택 사항: 가상 브리지가 수신한 가상 포트를 통해 이더넷 프레임을 다시 보낼 수 있도록 하려면 |
|
|
선택 사항: 브리지에서 무차별 모드를 활성화하려면 |
|
| 선택 사항: 가상 LAN(VLAN) 태그를 정수 값으로 지정합니다. 기본적으로 VLAN 태그는 할당되지 않습니다. |
|
|
선택 사항: 브리지에 연결된 |
|
|
선택 사항: VLAN 트렁크 태그를 할당합니다. 기본값은 |
|
| 선택 사항: 최대 전송 단위(MTU)를 지정된 값으로 설정합니다. 기본값은 커널에 의해 자동으로 설정됩니다. |
|
|
선택 사항: 컨테이너 측 |
|
|
선택 사항: Mac 스푸핑 검사를 활성화하여 컨테이너에서 발생하는 트래픽을 인터페이스의 MAC 주소로 제한합니다. 기본값은 |
VLAN 매개변수는 veth
의 호스트 측에서 VLAN 태그를 구성하고 브리지 인터페이스에서 vlan_filtering
기능도 활성화합니다.
L2 네트워크에 대한 업링크를 구성하려면 다음 명령을 사용하여 업링크 인터페이스에서 VLAN을 허용해야 합니다.
bridge vlan add vid VLAN_ID dev DEV
$ bridge vlan add vid VLAN_ID dev DEV
3.2.1.1. Bridge CNI 플러그인 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 bridge-net
이라는 보조 네트워크를 구성합니다.
3.2.2. Bond CNI 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
Bond Container Network Interface(Bond CNI)를 사용하면 컨테이너 내에서 여러 네트워크 인터페이스를 단일 논리적 "본딩" 인터페이스로 집계하여 네트워크 중복성과 내결함성을 향상시킬 수 있습니다. 이 플러그인을 사용하면 SR-IOV 가상 함수(VF)만 본딩할 수 있습니다.
다음 표에서는 Bond CNI 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
| 이 CNI 네트워크 첨부 정의에 지정된 이름을 지정합니다. 이 이름은 컨테이너 내에서 인터페이스를 식별하고 참조하는 데 사용됩니다. |
|
| CNI 사양 버전. |
|
|
구성할 CNI 플러그인의 이름을 지정합니다: |
|
| ARP(주소 확인 프로토콜) 링크 모니터링 빈도를 밀리초 단위로 지정합니다. 이 매개변수는 본드 인터페이스가 집계된 인터페이스의 가용성을 확인하기 위해 ARP 요청을 얼마나 자주 보내는지 정의합니다. |
|
| 선택 사항: 본드의 최대 전송 단위(MTU)를 지정합니다. 기본값은 1500입니다. |
|
|
선택 사항: 본드에 대한 |
|
| 결속 정책을 지정합니다. |
|
|
선택 사항: 본딩이 시작될 때 본딩을 위한 네트워크 인터페이스가 컨테이너의 네트워크 네임스페이스 내에서 생성되어 직접 사용할 수 있는지 여부를 지정합니다. 기본값이 |
|
| 본딩할 인터페이스를 지정합니다. |
|
| IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다. |
3.2.2.1. Bond CNI 플러그인 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 bond-net1
이라는 이름의 보조 네트워크를 구성합니다.
3.2.3. 호스트 장치 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 매개변수 중 하나만 설정하여 네트워크 장치를 지정합니다: device
, hwaddr
, kernelpath
또는 pciBusID
.
다음 개체는 호스트 장치 CNI 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. |
|
|
이전에 CNO 구성에 대해 제공한 |
|
|
구성할 CNI 플러그인의 이름: |
|
|
선택 사항: |
|
| 선택 사항: 장치 하드웨어 MAC 주소. |
|
|
선택 사항: |
|
|
선택 사항: 네트워크 장치의 PCI 주소(예 |
3.2.3.1. 호스트 장치 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 hostdev-net
이라는 보조 네트워크를 구성합니다.
3.2.4. VLAN 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 개체는 VLAN, vlan
, CNI 플러그인에 대한 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. |
|
|
이전에 CNO 구성에 대해 제공한 |
|
|
구성할 CNI 플러그인의 이름: |
|
|
네트워크 연결과 관련된 이더넷 인터페이스입니다. |
|
|
|
|
| IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다. |
|
| 선택 사항: 최대 전송 단위(MTU)를 지정된 값으로 설정합니다. 기본값은 커널에 의해 자동으로 설정됩니다. |
|
| 선택 사항: 반환할 DNS 정보입니다. 예를 들어, DNS 네임서버의 우선순위 목록입니다. |
|
|
선택 사항: |
VLAN
구성이 포함된 NetworkAttachmentDefinition
사용자 정의 리소스 정의(CRD)는 노드의 단일 포드에서만 사용할 수 있습니다. CNI 플러그인은 동일한 마스터
인터페이스에서 동일한 VLAN ID를
가진 여러 VLAN
하위 인터페이스를 생성할 수 없기 때문입니다.
3.2.4.1. VLAN 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 vlan-net
이라는 보조 네트워크가 있는 VLAN
구성을 보여줍니다.
3.2.5. IPVLAN 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 객체는 IPVLAN, ipvlan
, CNI 플러그인에 대한 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. |
|
|
이전에 CNO 구성에 대해 제공한 |
|
|
구성할 CNI 플러그인의 이름: |
|
| IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다. 플러그인이 체인되어 있지 않으면 이 작업이 필요합니다. |
|
|
선택 사항: 가상 네트워크의 작동 모드입니다. 값은 |
|
|
선택 사항: 네트워크 연결과 연결할 이더넷 인터페이스입니다. |
|
| 선택 사항: 최대 전송 단위(MTU)를 지정된 값으로 설정합니다. 기본값은 커널에 의해 자동으로 설정됩니다. |
|
|
선택 사항: |
-
ipvlan
객체는 가상 인터페이스가마스터
인터페이스와 통신하는 것을 허용하지 않습니다. 따라서 컨테이너는ipvlan
인터페이스를 사용하여 호스트에 도달할 수 없습니다. 컨테이너가PTP
(Precision Time Protocol)를 지원하는 네트워크와 같이 호스트에 연결을 제공하는 네트워크에 가입되어 있는지 확인하세요. -
단일
마스터
인터페이스는macvlan
과ipvlan을
동시에 사용하도록 구성할 수 없습니다. -
인터페이스에 구애받지 않는 IP 할당 방식의 경우,
ipvlan
플러그인을 이 논리를 처리하는 이전 플러그인과 연결할 수 있습니다.마스터가
생략되면 이전 결과에는 슬레이브로 설정할ipvlan
플러그인에 대한 단일 인터페이스 이름이 포함되어야 합니다.ipam을
생략하면 이전 결과가ipvlan
인터페이스를 구성하는 데 사용됩니다.
3.2.5.1. IPVLAN CNI 플러그인 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 ipvlan-net
이라는 보조 네트워크를 구성합니다.
3.2.6. MACVLAN 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 개체는 MAC 가상 LAN(MACVLAN) 컨테이너 네트워크 인터페이스(CNI) 플러그인에 대한 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. |
|
|
이전에 CNO 구성에 대해 제공한 |
|
|
구성할 CNI 플러그인의 이름: |
|
| IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다. |
|
|
선택 사항: 가상 네트워크에서 트래픽 가시성을 구성합니다. |
|
| 선택 사항: 새로 생성된 macvlan 인터페이스와 연결할 호스트 네트워크 인터페이스입니다. 값이 지정되지 않으면 기본 경로 인터페이스가 사용됩니다. |
|
| 선택 사항: 지정된 값에 대한 최대 전송 단위(MTU)입니다. 기본값은 커널에 의해 자동으로 설정됩니다. |
|
|
선택 사항: |
플러그인 구성에 대한 마스터
키를 지정하는 경우, 충돌 가능성을 피하기 위해 기본 네트워크 플러그인과 연결된 것과 다른 물리적 네트워크 인터페이스를 사용하세요.
3.2.6.1. MACVLAN CNI 플러그인 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 macvlan-net
이라는 보조 네트워크를 구성합니다.
3.2.7. TAP 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 개체는 TAP CNI 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. |
|
|
이전에 CNO 구성에 대해 제공한 |
|
|
구성할 CNI 플러그인의 이름: |
|
| 선택 사항: 인터페이스에 대해 지정된 MAC 주소를 요청합니다. |
|
| 선택 사항: 최대 전송 단위(MTU)를 지정된 값으로 설정합니다. 기본값은 커널에 의해 자동으로 설정됩니다. |
|
| 선택 사항: 탭 장치와 연결할 SELinux 컨텍스트입니다. 참고
OpenShift Container Platform에는 |
|
|
선택 사항: 다중 대기열을 활성화하려면 |
|
| 선택 사항: 탭 장치를 소유한 사용자입니다. |
|
| 선택 사항: 탭 장치를 소유한 그룹입니다. |
|
| 선택 사항: 탭 장치를 이미 존재하는 브리지의 포트로 설정합니다. |
3.2.7.1. 탭 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 mynet
이라는 보조 네트워크를 구성합니다.
3.2.7.2. TAP CNI 플러그인에 대한 SELinux 부울 설정 링크 복사링크가 클립보드에 복사되었습니다!
container_t
SELinux 컨텍스트로 탭 장치를 생성하려면 Machine Config Operator(MCO)를 사용하여 호스트에서 container_use_devices
부울 값을 활성화합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
다음 세부 정보를 포함하여
setsebool-container-use-devices.yaml
과 같은 이름의 새 YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 새로운
MachineConfig
객체를 만듭니다.oc apply -f setsebool-container-use-devices.yaml
$ oc apply -f setsebool-container-use-devices.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고MachineConfig
개체에 변경 사항을 적용하면 변경 사항이 적용된 후 영향을 받는 모든 노드가 정상적으로 재부팅됩니다. 이 업데이트가 적용되기까지 시간이 다소 걸릴 수 있습니다.다음 명령을 실행하여 변경 사항이 적용되었는지 확인하세요.
oc get machineconfigpools
$ oc get machineconfigpools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-e5e0c8e8be9194e7c5a882e047379cfa True False False 3 3 3 0 7d2h worker rendered-worker-d6c9ca107fba6cd76cdcbfcedcafa0f2 True False False 3 3 3 0 7d
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-e5e0c8e8be9194e7c5a882e047379cfa True False False 3 3 3 0 7d2h worker rendered-worker-d6c9ca107fba6cd76cdcbfcedcafa0f2 True False False 3 3 3 0 7d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고모든 노드는 업데이트되고 준비된 상태여야 합니다.
3.2.8. 보조 네트워크에서 route-override 플러그인을 사용하여 경로 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 객체는 route-override
CNI 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
구성할 CNI 플러그인의 이름: |
|
|
선택 사항: 기존 경로를 모두 플러시하려면 |
|
|
선택 사항: 기본 경로, 즉 게이트웨이 경로를 플러시하려면 |
|
| 선택 사항: 컨테이너 네임스페이스에서 삭제할 경로 목록을 지정합니다. |
|
|
선택 사항: 컨테이너 네임스페이스에 추가할 경로 목록을 지정합니다. 각 경로는 |
|
|
선택 사항: 확인 명령을 건너뛰려면 이 값을 |
3.2.8.1. Route-override 플러그인 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
경로 재정의
CNI는 부모 CNI와 연결하여 사용하도록 설계된 CNI 유형입니다. 독립적으로 작동하지 않고 부모 CNI가 먼저 네트워크 인터페이스를 만들고 IP 주소를 할당한 후에야 라우팅 규칙을 수정할 수 있습니다.
다음 예제에서는 mymacvlan
이라는 보조 네트워크를 구성합니다. 부모 CNI는 eth1
에 연결된 네트워크 인터페이스를 생성하고 호스트 로컬
IPAM을 사용하여 192.168.1.0/24
범위의 IP 주소를 할당합니다. 그런 다음 경로 재정의
CNI가 부모 CNI에 연결되어 기존 경로를 플러시하고, 192.168.0.0/24
에 대한 경로를 삭제하고, 사용자 지정 게이트웨이를 사용하여 192.168.0.0/24
에 대한 새 경로를 추가하여 라우팅 규칙을 수정합니다.