3장. 2차 네트워크
3.1. OVN-Kubernetes에서 보조 네트워크 생성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 NAD( NetworkAttachmentDefinition
) 리소스를 사용하여 클러스터에 대한 보조 네트워크를 구성할 수 있습니다.
OpenShift Container Platform의 향후 버전에서는 사용자 정의 네트워크를 보조 네트워크로 지원하는 기능이 추가될 예정입니다.
3.1.1. OVN-Kubernetes 보조 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Networking OVN-Kubernetes 네트워크 플러그인을 사용하면 포드에 대한 보조 네트워크 인터페이스를 구성할 수 있습니다. 보조 네트워크 인터페이스를 구성하려면 NetworkAttachmentDefinition
사용자 정의 리소스 정의(CRD)에서 구성을 정의해야 합니다.
Pod 및 다중 네트워크 정책 생성은 노드의 OVN-Kubernetes 제어 평면 에이전트가 연관된 네트워크 연결 정의
CRD를 처리할 때까지 보류 상태로 유지될 수 있습니다.
OVN-Kubernetes 보조 네트워크를 2계층, 3계층 또는 로컬넷 토폴로지로 구성할 수 있습니다. 이러한 토폴로지에서 지원되는 기능에 대한 자세한 내용은 "UserDefinedNetwork 및 NetworkAttachmentDefinition 지원 매트릭스"를 참조하세요.
다음 섹션에서는 OVN-Kubernetes가 현재 보조 네트워크에 허용하는 각 토폴로지에 대한 구성 예를 제공합니다.
네트워크 이름은 고유해야 합니다. 예를 들어, 동일한 네트워크를 참조하는 서로 다른 구성을 가진 여러 NetworkAttachmentDefinition
CRD를 만드는 것은 지원되지 않습니다.
3.1.1.1. OVN-Kubernetes 보조 네트워크에 지원되는 플랫폼 링크 복사링크가 클립보드에 복사되었습니다!
다음 지원 플랫폼에서 OVN-Kubernetes 보조 네트워크를 사용할 수 있습니다.
- 베어 메탈
- IBM Power®
- IBM Z®
- IBM® LinuxONE
- VMware vSphere
- Red Hat 오픈스택 플랫폼(RHOSP)
3.1.1.2. OVN-Kubernetes 네트워크 플러그인 JSON 구성 테이블 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 OVN-Kubernetes CNI 네트워크 플러그인의 구성 매개변수를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
|
CNI 사양 버전. 필요한 값은 |
|
|
네트워크의 이름. 이러한 네트워크는 네임스페이스가 없습니다. 예를 들어, |
|
|
구성할 CNI 플러그인의 이름입니다. 이 값은 |
|
|
네트워크의 토폴로지 구성. |
|
| 클러스터 전반의 네트워크에 사용할 서브넷입니다.
생략하면 네트워크를 구현하는 논리적 스위치는 2계층 통신만 제공하고 사용자는 포드에 대한 IP 주소를 구성해야 합니다. 포트 보안은 MAC 스푸핑만 방지합니다. |
|
| 최대 전송 단위(MTU). 값을 설정하지 않으면 클러스터 네트워크 운영자(CNO)가 기본 네트워크 인터페이스의 언더레이 MTU, Geneve(일반 네트워크 가상화 캡슐화)와 같은 Pod 네트워크의 오버레이 MTU, IPsec과 같은 활성화된 기능의 바이트 용량의 차이를 계산하여 기본 MTU 값을 설정합니다. |
|
|
이 구성이 포함되는 네트워크 연결 정의 CRD의 메타데이터 |
|
| CIDR과 IP 주소를 쉼표로 구분한 목록입니다. IP 주소는 할당 가능한 IP 주소 풀에서 제거되며 결코 포드에 전달되지 않습니다. |
|
|
토폴로지가 |
|
|
토폴로지가 |
3.1.1.3. 다중 네트워크 정책과의 호환성 링크 복사링크가 클립보드에 복사되었습니다!
k8s.cni.cncf.io
API 그룹의 MultiNetworkPolicy
사용자 정의 리소스 정의(CRD)가 제공하는 다중 네트워크 정책 API는 OVN-Kubernetes 보조 네트워크와 호환됩니다. 네트워크 정책을 정의할 때 사용할 수 있는 네트워크 정책 규칙은 OVN-Kubernetes 보조 네트워크에서 서브넷
필드를 정의하는지 여부에 따라 달라집니다. 자세한 내용은 다음 표를 참조하세요.
서브넷 필드가 지정됨 | 허용된 다중 네트워크 정책 선택기 |
---|---|
제공됨 |
|
없음 |
|
MultiNetworkPolicy
객체에서 k8s.v1.cni.cncf.io/policy-for
주석을 사용하여 NetworkAttachmentDefinition
(NAD) 사용자 정의 리소스(CR)를 가리킬 수 있습니다. NAD CR은 정책이 적용되는 네트워크를 정의합니다. 다음 예제 다중 네트워크 정책은 blue2
라는 보조 네트워크에 대한 보조 네트워크 CNI 구성에서 서브넷
필드가 정의된 경우에만 유효합니다.
포드 선택기를 사용하는 다중 네트워크 정책 예
다음 예제에서는 OVN-Kubernetes 보조 네트워크에 항상 유효한 ipBlock
네트워크 정책 선택기를 사용합니다.
IP 블록 선택기를 사용하는 다중 네트워크 정책 예
3.1.1.4. 로컬넷 스위치 토폴로지에 대한 구성 링크 복사링크가 클립보드에 복사되었습니다!
스위치드 로컬
넷 토폴로지는 클러스터 전체의 논리적 스위치를 통해 네트워크 연결 정의(NAD)로 생성된 작업 부하를 물리적 네트워크로 상호 연결합니다.
OVN-Kubernetes 보조 네트워크로 사용하려면 보조 네트워크를 ovs-bridge에 매핑해야 합니다. 브리지 매핑을 통해 네트워크 트래픽이 물리적 네트워크에 도달할 수 있습니다. 브리지 매핑은 인터페이스 레이블이라고도 하는 물리적 네트워크 이름을 Open vSwitch(OVS)로 생성된 브리지에 연결합니다.
nmstate.io/v1
API 그룹의 일부인 NodeNetworkConfigurationPolicy
(NNCP) 객체를 생성하여 매핑을 선언적으로 생성할 수 있습니다. 이 API는 NMState Operator가 제공합니다. 이 API를 사용하면 지정한 nodeSelector
표현식(예: node-role.kubernetes.io/worker: '' )
과 일치하는 노드에 브리지 매핑을 적용할 수 있습니다. 이러한 선언적 접근 방식을 통해 NMState 연산자는 노드 선택기에서 지정한 모든 노드에 보조 네트워크 구성을 자동적이고 투명하게 적용합니다.
보조 네트워크를 연결할 때 기존 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
- 매핑에 대한 상태입니다. 브리지를 추가하려면
존재
해야 하고, 브리지를 제거하려면없어야 합니다
. 기본값은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
- 매핑 상태를 지정합니다. 브리지를 추가하려면 유효한 값이
존재
하고, 브리지를 제거하려면 유효한 값이 없습니다
. 기본값은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계층 스위치 토폴로지 네트워크는 클러스터 내의 포드 간 데이터 패킷 전송만 허용합니다.
다음 JSON 예제는 스위치드 보조 네트워크를 구성합니다.
3.1.1.5. 보조 네트워크에 대한 포드 구성 링크 복사링크가 클립보드에 복사되었습니다!
k8s.v1.cni.cncf.io/networks
주석을 통해 보조 네트워크 연결을 지정해야 합니다.
다음 예제에서는 이 가이드에 제시된 각 부착 구성에 대해 하나씩, 두 개의 보조 부착물이 있는 포드를 제공합니다.
3.1.1.6. 고정 IP 주소로 포드 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 정적 IP 주소로 Pod를 프로비저닝합니다.
- 네임스페이스 범위 객체인 보조 네트워크 연결이 레이어 2 또는 로컬넷 토폴로지를 사용하는 경우에만 포드의 보조 네트워크 연결에 대한 IP 주소를 지정할 수 있습니다.
- 포드에 대한 정적 IP 주소를 지정하는 것은 첨부 파일 구성에 서브넷이 없는 경우에만 가능합니다.