구성해야 하는 NSX-T Data Center 리소스로는 오버레이 전송 영역, Tier-0 논리적 라우터, 노드 VM 연결을 위한 논리적 스위치, Kubernetes 노드용 IP 블록 및 SNAT용 IP 풀 등이 있습니다.

중요:

NSX-T Data Center 2.4 이상에서 실행 중인 경우 고급 네트워킹 및 보안 탭을 사용하여 NSX-T 리소스를 구성해야 합니다.

NCP 구성 파일 ncp.ini에서 NSX-T Data Center 리소스는 UUID 또는 이름을 사용하여 지정됩니다.

오버레이 전송 영역

NSX Manager에 로그인하여 컨테이너 네트워킹에 사용되는 오버레이 전송 영역을 찾거나 새 영역을 생성합니다.

ncp.ini[nsx_v3] 섹션에 overlay_tz 옵션을 설정하여 클러스터에 대한 오버레이 전송 영역을 지정합니다. 이 단계는 선택 사항입니다. overlay_tz를 설정하지 않으면 NCP가 Tier-0 라우터에서 오버레이 전송 영역 ID를 자동으로 검색합니다.

Tier-0 논리적 라우팅

NSX Manager에 로그인하여 컨테이너 네트워킹에 사용되는 라우터를 찾거나 새 라우터를 생성합니다.

ncp.ini[nsx_v3] 섹션에 tier0_router 옵션을 설정하여 클러스터에 대한 Tier-0 논리적 라우터를 지정합니다.

참고:

라우터는 활성-대기 모드로 생성해야 합니다.

논리적 스위치

노드가 데이터 트래픽에 사용하는 vNIC는 오버레이 논리적 스위치에 연결해야 합니다. 노드의 관리 인터페이스를 NSX-T Data Center에 연결하면 설정이 더 쉬워지지만 반드시 그렇게 할 필요는 없습니다. NSX Manager에 로그인하여 논리적 스위치를 생성할 수 있습니다. 스위치에서 논리적 포트를 생성하고 노드 vNIC를 논리적 스위치에 연결합니다. 논리적 포트에는 다음과 같은 태그가 있어야 합니다.

  • 태그: <cluster_name>, 범위: ncp/cluster

  • 태그: <node_name>, 범위: ncp/node_name

<cluster_name> 값은 ncp.ini[coe] 섹션에 있는 cluster 옵션 값과 일치해야 합니다.

Kubernetes 포드용 IP 블록

NSX Manager에 로그인하고 하나 이상의 IP 블록을 생성합니다. CIDR 형식으로 IP 블록을 지정합니다.

ncp.ini[nsx_v3] 섹션에 container_ip_blocks 옵션을 설정하여 Kubernetes 포드에 대한 IP 블록을 지정합니다.

비 SNAT 네임스페이스에만 사용되는 IP 블록을 생성할 수도 있습니다.

ncp.ini[nsx_v3] 섹션에 no_snat_ip_blocks 옵션을 설정하여 비 SNAT IP 블록을 지정합니다.

NCP가 실행되는 동안 비 SNAT IP 블록을 생성하면 NCP를 다시 시작해야 합니다. 그렇지 않으면, NCP는 고갈될 때까지 공유 IP 블록을 계속 사용합니다.

참고:

IP 블록을 생성할 때 접두사는 NCP의 구성 파일 ncp.ini에 있는 subnet_prefix 매개 변수의 값보다 크지 않아야 합니다.

SNAT용 IP 풀

IP 풀은 SNAT 규칙을 통해 포드 IP를 변환하고 SNAT/DNAT 규칙을 통해 수신 컨트롤러를 노출하는 데 사용되는 IP 주소(Openstack 유동 IP와 동일) 할당에 사용됩니다. 이러한 IP 주소를 외부 IP라고도 합니다.

여러 Kubernetes 클러스터가 동일한 외부 IP 풀을 사용합니다. 각 NCP 인스턴스는 관리하는 Kubernetes 클러스터에 대해 이 풀의 하위 집합을 사용합니다. 기본적으로 포드 서브넷에 대해 동일한 서브넷 접두사가 사용됩니다. 다른 서브넷 크기를 사용하려면 ncp.ini[nsx_v3] 섹션에서 external_subnet_prefix 옵션을 업데이트합니다.

NSX Manager에 로그인하고 풀을 생성하거나 기존 풀을 찾습니다.

ncp.ini[nsx_v3] 섹션에 external_ip_pools 옵션을 설정하여 SNAT에 대한 IP 풀을 지정합니다.

서비스에 주석을 추가하여 특정 서비스에 대한 SNAT를 구성할 수도 있습니다. 예를 들면 다음과 같습니다.

    apiVersion: v1
    kind: Service
    metadata:
      name: svc-example
      annotations:
        ncp/snat_pool: <external IP pool ID or name>
      selector:
        app: example
    ...

NCP는 이 서비스에 대한 SNAT 규칙을 구성합니다. 규칙의 소스 IP는 백엔드 포드 집합입니다. 대상 IP는 지정된 외부 IP 풀에서 할당된 SNAT IP입니다. 다음에 유의하십시오.

  • 서비스를 구성하기 전에 ncp/snat_pool에서 지정한 IP 풀이 NSX-T Data Center에 이미 있어야 합니다. IP 풀에 태그 {"ncp/owner": cluster:<cluster>}가 있어야 합니다.

  • NSX-T Data Center에서 서비스에 대한 SNAT 규칙의 우선 순위는 프로젝트의 우선 순위보다 높습니다.

  • 포드가 여러 SNAT 규칙으로 구성된 경우 규칙 하나만 작동합니다.

다음 태그를 IP 풀에 추가하여 SNAT IP 풀의 IP를 할당할 수 있는 네임스페이스를 지정할 수 있습니다.

  • 범위: ncp/owner, 태그: ns:<namespace_UUID>

다음 명령 중 하나를 사용하여 네임스페이스 UUID를 가져올 수 있습니다.

oc get ns -o yaml

다음에 유의하십시오.

  • 각 태그는 하나의 UUID를 지정해야 합니다. 동일한 풀에 대해 여러 개의 태그를 생성할 수 있습니다.

  • 이전 태그를 기반으로 일부 네임스페이스에 IP를 할당한 후 태그를 변경했다면 이러한 IP는 서비스의 SNAT 구성이 변경되거나 NCP가 다시 시작될 때까지 회수되지 않습니다.

  • 네임스페이스 소유자 태그는 선택 사항입니다. 이 태그가 없으면 모든 네임스페이스가 SNAT IP 풀에서 할당된 IP를 가질 수 있습니다.

(선택 사항) 방화벽 마커 섹션

관리자가 방화벽 규칙을 생성하고 해당 규칙이 NCP가 생성한 네트워크 정책 기반의 방화벽 섹션을 방해하지 않게 하려면 NSX Manager에 로그인하고 2개의 방화벽 섹션을 생성합니다.

ncp.ini[nsx_v3] 섹션에 bottom_firewall_section_marker 옵션과 top_firewall_section_marker 옵션을 설정하여 마커 방화벽 섹션을 지정합니다.

하단 방화벽 섹션은 상단 방화벽 섹션보다 아래에 있어야 합니다. 이러한 방화벽 섹션을 생성하면 NCP가 분리를 위해 생성하는 모든 방화벽 섹션이 하단 방화벽 섹션의 위에 생성되고 NCP가 정책을 위해 생성하는 모든 방화벽 섹션이 상단 방화벽 섹션의 아래에 생성됩니다. 이러한 마커 섹션을 생성하지 않으면 모든 분리 규칙이 하단에 생성되고 모든 정책 섹션이 상단에 생성됩니다. 클러스터 하나에 값이 동일한 마커 방화벽 섹션을 여러 개 사용할 수 없으며, 이렇게 할 경우 오류가 발생합니다.