3.3. Multus 네트워크 생성

OpenShift Container Platform은 Multus CNI 플러그인을 사용하여 CNI 플러그인 체인을 허용합니다. 클러스터 설치 중에 기본 Pod 네트워크를 구성할 수 있습니다. 기본 네트워크는 클러스터의 모든 일반 네트워크 트래픽을 처리합니다. 사용 가능한 CNI 플러그인을 기반으로 추가 네트워크를 정의하고 이러한 네트워크 중 하나 이상을 Pod에 연결할 수 있습니다. Pod에 추가 네트워크 인터페이스를 연결하려면 인터페이스 연결 방법을 정의하는 구성을 생성해야 합니다. NetworkAttachmentDefinition CR(사용자 정의 리소스)을 사용하여 각 인터페이스를 지정할 수 있습니다. 각 NetworkAttachmentDefinition 내부의 CNI 구성은 해당 인터페이스 생성 방법을 정의합니다.

OpenShift Container Storage는 macvlan 라는 CNI 플러그인을 사용합니다. macvlan 기반 추가 네트워크를 생성하면 호스트의 pod가 실제 네트워크 인터페이스를 사용하여 해당 호스트의 다른 호스트 및 포드와 통신할 수 있습니다. macvlan 기반 추가 네트워크에 연결된 각 pod에는 고유 한 MAC 주소가 제공됩니다.

3.3.1. 네트워크 연결 정의 생성

Multus를 활용하려면 올바른 네트워킹 구성으로 이미 작동 중인 클러스터가 필요합니다. 자세한 내용은 Multus 구성에 대한 권장 네트워크 구성 및 요구 사항을 참조하십시오. 지금 생성된 NetworkAttachmentDefinition (NAD)은 나중에 스토리지 클러스터 설치 중에 선택할 수 있습니다. 이는 스토리지 클러스터보다 먼저 생성해야 하는 이유입니다.

계획 가이드에 설명된 대로 생성하는 Multus 네트워크는 OpenShift Container Storage 트래픽에 대해 보유한 사용 가능한 네트워크 인터페이스 수에 따라 달라집니다. 모든 스토리지 트래픽을 두 인터페이스(기본 OpenShift SDN에 사용되는 하나의 인터페이스) 중 하나로 분리하거나 스토리지 트래픽을 클라이언트 스토리지 트래픽(공용) 및 스토리지 복제 트래픽(프라이빗 또는 클러스터)으로 추가로 분리할 수 있습니다.

다음은 동일한 인터페이스에서 공용 및 클러스터의 모든 스토리지 트래픽에 대한 NetworkAttachmentDefinition 의 예입니다. 예약 가능한 모든 노드에 하나의 추가 인터페이스가 필요합니다(별도 네트워크 인터페이스의 OpenShift 기본 SDN).

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: ocs-public-cluster
  namespace: openshift-storage
spec:
  config: '{
  	"cniVersion": "0.3.1",
  	"type": "macvlan",
  	"master": "ens2",
  	"mode": "bridge",
  	"ipam": {
    	    "type": "whereabouts",
    	    "range": "192.168.1.0/24"
  	}
  }'
참고

모든 네트워크 인터페이스 이름은 Multus 네트워크에 연결된 모든 노드에서 동일해야 합니다(즉, ocs-public-cluster경우 ens 2).

다음은 별도의 Multus 네트워크의 스토리지 트래픽에 대한 NetworkAttachmentDefinitions의 예로, 복제 트래픽용 클라이언트 스토리지 트래픽 및 클러스터의 공용입니다. OSD 포드를 호스팅하는 OpenShift 노드에 두 개의 추가 인터페이스가 필요하며, 다른 모든 예약 가능한 노드에서 1개의 추가 인터페이스가 필요합니다(별도 네트워크 인터페이스의 OpenShift 기본 SDN).

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: ocs-public
  namespace: openshift-storage
spec:
  config: '{
  	"cniVersion": "0.3.1",
  	"type": "macvlan",
  	"master": "ens2",
  	"mode": "bridge",
  	"ipam": {
    	    "type": "whereabouts",
    	    "range": "192.168.1.0/24"
  	}
  }'

NetworkAttachmentDefinition 의 예 :

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: ocs-cluster
  namespace: openshift-storage
spec:
  config: '{
  	"cniVersion": "0.3.1",
  	"type": "macvlan",
  	"master": "ens3",
  	"mode": "bridge",
  	"ipam": {
    	    "type": "whereabouts",
    	    "range": "192.168.2.0/24"
  	}
  }'
참고

모든 네트워크 인터페이스 이름은 Multus 네트워크에 연결된 모든 노드에서 동일해야 합니다(즉, ocs-public의 경우 ens2, ocs-cluster경우 ens 3).