3장. 보조 네트워크
3.1. OVN-Kubernetes에서 보조 네트워크 생성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 NetworkAttachmentDefinition
(NAD) 리소스를 사용하여 클러스터의 보조 네트워크를 구성할 수 있습니다.
보조 네트워크로 사용자 정의 네트워크에 대한 지원은 향후 OpenShift Container Platform 버전에 추가됩니다.
3.1.1. OVN-Kubernetes 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Networking OVN-Kubernetes 네트워크 플러그인을 사용하면 포드에 대한 보조 네트워크 인터페이스를 구성할 수 있습니다. 보조 네트워크 인터페이스를 구성하려면 NetworkAttachmentDefinition
CRD(사용자 정의 리소스 정의)에서 구성을 정의해야 합니다.
노드의 OVN-Kubernetes 컨트롤 플레인 에이전트가 연결된 network-attachment-definition
CRD를 처리할 때까지 Pod 및 다중 네트워크 정책 생성은 보류 중 상태로 유지될 수 있습니다.
계층 2, 계층 3 또는 localnet 토폴로지에서 OVN-Kubernetes 보조 네트워크를 구성할 수 있습니다. 이러한 토폴로지에서 지원되는 기능에 대한 자세한 내용은 "UserDefinedNetwork 및 NetworkAttachmentDefinition support matrix"를 참조하십시오.
다음 섹션에서는 현재 OVN-Kubernetes에서 보조 네트워크에서 허용하는 각 토폴로지에 대한 예제 구성을 제공합니다.
네트워크 이름은 고유해야 합니다. 예를 들어 동일한 네트워크를 참조하는 다양한 구성으로 여러 NetworkAttachmentDefinition
CRD를 생성하는 것은 지원되지 않습니다.
3.1.1.1. OVN-Kubernetes 보조 네트워크에서 지원되는 플랫폼 링크 복사링크가 클립보드에 복사되었습니다!
지원되는 플랫폼에서 OVN-Kubernetes 보조 네트워크를 사용할 수 있습니다.
- 베어 메탈
- IBM Power®
- IBM Z®
- IBM® LinuxONE
- VMware vSphere
- Red Hat OpenStack Platform (RHOSP)
3.1.1.2. OVN-Kubernetes 네트워크 플러그인 JSON 구성 테이블 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 OVN-Kubernetes CNI 네트워크 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전입니다. 필수 값은 |
|
|
네트워크의 이름입니다. 이러한 네트워크는 네임스페이스가 지정되지 않습니다. 예를 들어 |
|
|
구성할 CNI 플러그인의 이름입니다. 이 값은 |
|
|
네트워크의 토폴로지 구성입니다. |
|
| 클러스터 전체에서 네트워크에 사용할 서브넷입니다.
생략하면 네트워크를 구현하는 논리 스위치는 계층 2 통신만 제공하며 사용자는 Pod의 IP 주소를 구성해야 합니다. 포트 보안은 MAC 스푸핑만 방지합니다. |
|
| 최대 전송 단위(MTU)입니다. 값을 설정하지 않으면 CNO(Cluster Network Operator)는 기본 네트워크 인터페이스의 오버레이 MTU, Geneve(Generic Network Virtualization Encapsulation)와 같은 Pod 네트워크의 오버레이 MTU 및 IPsec과 같은 활성화된 기능의 바이트 용량을 계산하여 기본 MTU 값을 설정합니다. |
|
|
이 구성이 포함된 네트워크 연결 정의 CRD의 메타데이터 |
|
| 쉼표로 구분된 CIDR 및 IP 주소 목록입니다. IP 주소는 할당 가능한 IP 주소 풀에서 제거되며 Pod에 전달되지 않습니다. |
|
|
토폴로지가 |
3.1.1.3. 다중 네트워크 정책과의 호환성 링크 복사링크가 클립보드에 복사되었습니다!
k8s.cni.cncf.io
API 그룹의 MultiNetworkPolicy
CRD(사용자 정의 리소스 정의)에서 제공하는 다중 네트워크 정책 API는 OVN-Kubernetes 보조 네트워크와 호환됩니다. 네트워크 정책을 정의할 때 OVN-Kubernetes 보조 네트워크가 subnets
필드를 정의하는지 여부에 따라 사용할 수 있는 네트워크 정책 규칙입니다. 자세한 내용은 다음 표를 참조하십시오.
subnets 필드 지정 | 허용된 다중 네트워크 정책 선택기 |
---|---|
제공됨 |
|
없음 |
|
MultiNetworkPolicy
오브젝트에서 k8s.v1.cni.cncf.io/policy-for
주석을 사용하여 NetworkAttachmentDefinition
(NAD) 사용자 정의 리소스(CR)를 가리킬 수 있습니다. CryostatD CR은 정책이 적용되는 네트워크를 정의합니다. 다음 예제 다중 네트워크 정책은 subnets
필드가 blue2
라는 보조 네트워크의 보조 네트워크 CNI 구성에 정의된 경우에만 유효합니다.
Pod 선택기를 사용하는 다중 네트워크 정책의 예
다음 예제에서는 OVN-Kubernetes 보조 네트워크에 항상 유효한 ipBlock
네트워크 정책 선택기를 사용합니다.
IP 블록 선택기를 사용하는 다중 네트워크 정책의 예
3.1.1.4. localnet 전환 토폴로지 구성 링크 복사링크가 클립보드에 복사되었습니다!
전환된 localnet
토폴로지는 클러스터 전체 논리 스위치를 물리적 네트워크에 통해 VNC(Network Attachment Definitions)로 생성된 워크로드를 상호 연결합니다.
보조 네트워크를 OVN-Kubernetes 보조 네트워크로 사용하려면 보조 네트워크를 ovs-bridge에 매핑해야 합니다. 브리지 매핑을 사용하면 네트워크 트래픽이 물리적 네트워크에 도달할 수 있습니다. 브리지 매핑은 인터페이스 레이블이라고도 하는 물리적 네트워크 이름을 OVS(Open vSwitch)로 생성된 브릿지에 연결합니다.
nmstate.io/v1
API 그룹의 일부인 NodeNetworkConfigurationPolicy
(NNCP) 오브젝트를 생성하여 매핑을 선언적으로 생성할 수 있습니다. 이 API는 NMState Operator에서 제공합니다. 이 API를 사용하면 node-role.kubernetes.io/worker: ''
과 같이 지정된 nodeSelector
표현식과 일치하는 노드에 브리지 매핑을 적용할 수 있습니다. 이 선언적 접근 방식을 사용하면 NMState Operator는 노드 선택기에서 지정한 모든 노드에 보조 네트워크 구성을 자동으로 투명하게 적용합니다.
보조 네트워크를 연결할 때 기존 br-ex
브리지를 사용하거나 새 브리지를 만들 수 있습니다. 사용할 방법은 특정 네트워크 인프라에 따라 다릅니다. 다음 접근 방식을 고려하십시오.
-
노드에 단일 네트워크 인터페이스만 포함된 경우 기존 브릿지를 사용해야 합니다. 이 네트워크 인터페이스는 OVN-Kubernetes에서 소유하고 관리하며
br-ex
브리지에서 제거하거나 인터페이스 구성을 변경할 수 없습니다. 네트워크 인터페이스를 제거하거나 변경하면 클러스터 네트워크가 제대로 작동하지 않습니다. - 노드에 여러 네트워크 인터페이스가 포함된 경우 다른 네트워크 인터페이스를 새 브리지에 연결하고 보조 네트워크에 사용할 수 있습니다. 이 방법을 사용하면 기본 클러스터 네트워크와 트래픽을 격리할 수 있습니다.
localnet1
네트워크는 다음 예제에서 br-ex
브릿지에 매핑됩니다.
브리지 공유를 위한 매핑 예
- 1 1
- 구성 오브젝트의 이름입니다.
- 2
- 노드 네트워크 구성 정책을 적용할 노드를 지정하는 노드 선택기입니다.
- 3
- 트래픽이 OVS 브리지로 전달되는 보조 네트워크의 이름입니다. 이 보조 네트워크는 OVN-Kubernetes 보조 네트워크를 정의하는
NetworkAttachmentDefinition
CRD의spec.config.name
필드 이름과 일치해야 합니다. - 4
- 노드의 OVS 브리지 이름입니다. 이 값은
state: present
를 지정하는 경우에만 필요합니다. - 5
- 매핑의 상태입니다. 브릿지를 추가하려면 이 브릿지가
존재
하거나absent
여야 합니다. 기본값은present
입니다.다음 JSON 예제는
localnet1
이라는 localnet 보조 네트워크를 구성합니다.mtu
매개변수의 값은br-ex
브릿지 인터페이스에 매핑되는 보조 네트워크 인터페이스에 설정된 MTU 값과 일치해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 예에서 localnet2
네트워크 인터페이스는 ovs-br1
브리지에 연결됩니다. 이 연결을 통해 OVN-Kubernetes 네트워크 플러그인에서 보조 네트워크로 네트워크 인터페이스를 사용할 수 있습니다.
여러 인터페이스가 있는 노드의 매핑 예
- 1
- 구성 오브젝트의 이름을 지정합니다.
- 2
- 노드 네트워크 구성 정책이 적용되는 노드를 식별하는 노드 선택기를 지정합니다.
- 3
- 클러스터 트래픽에 OVN-Kubernetes에서 사용하는 기본 브리지와 별도로 작동하는 새 OVS 브리지를 지정합니다.
- 4
- 멀티 캐스트 스누핑 활성화 여부를 지정합니다. 활성화하면 멀티 캐스트 스누핑으로 네트워크 장치가 멀티캐스트 트래픽을 모든 네트워크 멤버로 플러드하는 것을 방지합니다. 기본적으로 OVS 브릿지는 멀티 캐스트 스누핑을 활성화하지 않습니다. 기본값은
false
입니다. - 5
- 새 OVS 브리지와 연결할 호스트 시스템의 네트워크 장치를 지정합니다.
- 6
- 트래픽을 OVS 브리지로 전달하는 보조 네트워크의 이름을 지정합니다. 이 이름은 OVN-Kubernetes 보조 네트워크를 정의하는
NetworkAttachmentDefinition
CRD의spec.config.name
필드 값과 일치해야 합니다. - 7
- 노드의 OVS 브리지 이름을 지정합니다. 이 값은
state: present
가 설정된 경우에만 필요합니다. - 8
- 매핑 상태를 지정합니다. 브릿지를 제거하기 위해 브리지 또는
absent
를 추가하는 유효한 값이 있습니다.기본값은
present
입니다.다음 JSON 예제는
localnet2
라는 localnet 보조 네트워크를 구성합니다.mtu
매개변수의 값은eth1
보조 네트워크 인터페이스에 설정된 MTU 값과 일치해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.1.4.1. 계층 2 전환 토폴로지 구성 링크 복사링크가 클립보드에 복사되었습니다!
전환(계층 2) 토폴로지 네트워크는 클러스터 전체 논리 스위치를 통해 워크로드를 상호 연결합니다. 이 구성은 IPv6 및 듀얼 스택 배포에 사용할 수 있습니다.
계층 2 전환 토폴로지 네트워크는 클러스터 내의 Pod 간 데이터 패킷 전송만 허용합니다.
다음 JSON 예제에서는 전환된 보조 네트워크를 구성합니다.
3.1.1.5. 보조 네트워크에 대한 Pod 구성 링크 복사링크가 클립보드에 복사되었습니다!
k8s.v1.cni.cncf.io/networks
주석을 통해 보조 네트워크 연결을 지정해야 합니다.
다음 예제에서는 이 가이드에 표시된 각 연결 구성에 대해 하나씩 두 개의 보조 첨부 파일로 Pod를 프로비저닝합니다.
3.1.1.6. 고정 IP 주소를 사용하여 Pod 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 고정 IP 주소를 사용하여 Pod를 프로비저닝합니다.
- 보조 네트워크 연결, 네임스페이스 범위의 오브젝트인 계층 2 또는 localnet 토폴로지를 사용하는 경우에만 Pod의 보조 네트워크 연결에 대한 IP 주소를 지정할 수 있습니다.
- pod의 고정 IP 주소를 지정하는 것은 연결 구성에 서브넷이 적용되지 않는 경우에만 가능합니다.