NCP에 대해 특정 네트워킹 리소스를 구성하는 방법에는 두 가지가 있습니다. 이 섹션에서는 정책 모드에서 리소스를 구성하는 방법을 설명합니다.

NCP 구성 파일 ncp.ini에서 해당 리소스 ID를 사용하여 NSX 리소스를 지정해야 합니다. 일반적으로 리소스의 이름과 ID는 동일합니다. 완전히 확인하려면 NSX Manager 웹 UI에서 리소스에 대한 옵션을 표시하는 3점 아이콘을 클릭하고 클립보드에 경로 복사를 선택합니다. 메모장과 같은 애플리케이션에 경로를 붙여넣습니다. 경로의 마지막 부분은 리소스 ID입니다.

게이트웨이 및 세그먼트

  1. Kubernetes 노드의 세그먼트를 생성합니다(예: Segment1).
  2. Tier-0 게이트웨이(예: T0GW1)를 생성합니다. 공유 Tier-1 토폴로지가 없는 경우 ncp.ini[nsx_v3] 섹션에서 top_tier_router 옵션을 게이트웨이의 ID로 설정합니다. 공유 Tier-1 토폴로지 구성에 대한 자세한 내용은 아래를 참조하십시오. 이 게이트웨이에서 NAT 규칙을 구성하려는 경우 HA 모드를 활성-대기로 설정합니다. 그렇지 않은 경우, 활성-활성로 설정합니다. 경로 재배포를 사용하도록 설정합니다. 또한 외부 네트워크에 액세스할 수 있도록 이 게이트웨이를 구성합니다.
  3. Tier-1 게이트웨이(예: T1GW1)를 생성합니다. 이 게이트웨이를 Tier-0 게이트웨이에 연결합니다.
  4. T1GW1에 대한 라우터 보급을 구성합니다. 최소한 NSX 연결 및 NAT 경로를 사용하도록 설정해야 합니다.
  5. T1GW1Segment1에 연결합니다. 게이트웨이 포트의 IP 주소가 Kubernetes 노드의 IP 주소와 충돌하지 않는지 확인합니다.
  6. 각 노드 VM에 대해 컨테이너 트래픽용 vNIC가 자동으로 생성된 논리적 스위치에 연결되어 있는지 확인합니다. 세그먼트와 이름이 같은 항목(즉, Segment1)을 네트워킹 탭에서 찾을 수 있습니다.
NCP는 vNIC의 VIF ID를 알고 있어야 합니다. [네트워킹] > [세그먼트]로 이동하여 자동으로 생성되는 Segment1의 포트를 볼 수 있습니다. 이러한 포트는 태그 속성을 제외하고는 편집할 수 없습니다. 이러한 포트에는 다음과 같은 태그가 있어야 합니다. 하나의 태그에는 노드의 이름을 지정합니다. 다른 태그에는 클러스터의 이름을 지정합니다. 범위에는 아래에 표시된 대로 적절한 값을 지정합니다.
태그 범위
노드 이름 ncp/node_name
클러스터 이름 ncp/cluster
이러한 태그는 해당하는 논리적 스위치 포트에 자동으로 전파됩니다. 노드 이름이 변경되면 태그를 업데이트해야 합니다. 노드 이름을 검색하려면 다음 명령을 실행합니다.
kubectl get nodes

NCP가 실행되는 동안 Kubernetes 클러스터를 확장하려는 경우, 예를 들어 클러스터에 노드를 더 추가하려는 경우 "kubeadm join"을 실행하기 전에 해당 스위치 포트에 태그를 추가해야 합니다. 먼저 태그를 추가하지 않고 "Kubeadm join"을 실행하면 새 노드가 연결되지 않습니다. 이 경우에는 태그를 추가한 후 NCP를 다시 시작하여 이 문제를 해결해야 합니다.

노드 VM에 대한 스위치 포트를 식별하려면 다음과 같은 API 호출을 수행할 수 있습니다.
/api/v1/fabric/virtual-machines
응답에서 노드 VM을 찾고 ''external_id'' 특성 값을 검색합니다. 또는 다음과 같은 API 호출을 수행할 수 있습니다.
/api/v1/search -G --data-urlencode "query=(resource_type:VirtualMachine AND display_name:<node_vm_name>)"
외부 ID를 가져온 후에는 다음 API에서 VM에 대한 VIF를 검색하는 데 사용할 수 있습니다. VIF는 VM이 시작될 때까지 채워지지 않습니다.
/api/v1/search -G --data-urlencode \
"query=(resource_type:VirtualNetworkInterface AND external_id:<node_vm_ext_id> AND \
_exists_:lport_attachment_id)"

lport_attachment_id 특성은 노드 VM에 대한 VIF ID입니다. 그런 다음, 이 VIF에 대한 논리적 포트를 찾고 필요한 태그를 추가할 수 있습니다.

Kubernetes 포드용 IP 블록

네트워킹 > IP 주소 관리 > IP 주소 풀 > IP 주소 블록으로 이동하여 하나 이상의 IP 블록을 생성합니다. CIDR 형식으로 IP 블록을 지정합니다. ncp.ini[nsx_v3] 섹션에서 container_ip_blocks 옵션을 IP 블록의 UUID로 설정합니다. NCP가 자동으로 IP 블록을 생성하도록 하려면 CIDR 형식의 쉼표로 구분된 주소 목록을 사용하여 container_ip_blocks 옵션을 설정할 수 있습니다.

기본적으로 프로젝트는 container_ip_blocks에 지정된 IP 블록을 공유합니다. ncp.ini[nsx_v3] 섹션에서 no_snat_ip_blocks 옵션을 설정하여 구체적으로 비 SNAT 네임스페이스(Kubernetes용) 또는 클러스터(TAS용)를 위한 IP 블록을 생성할 수 있습니다.

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

IP 블록을 생성할 때 접두사는 NCP의 구성 파일 ncp.ini에 있는 subnet_prefix 옵션의 값보다 크지 않아야 합니다. 기본값은 24입니다.

NCP에서 할당된 IP 주소를 시작한 경우 IP 블록을 수정하면 안 됩니다. 다른 블록을 사용하려는 경우 NCP가 블록의 주소를 할당하지 않았는지 확인합니다.

외부 IP 풀

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

네트워킹 > IP 주소 관리 > IP 주소 풀로 이동하여 IP 풀을 생성합니다. ncp.ini[nsx_v3] 섹션에서 external_ip_pools 옵션을 IP 풀의 UUID로 설정합니다. NCP가 자동으로 IP 풀을 생성하도록 하려면 CIDR 형식의 쉼표로 구분된 주소 목록 또는 IP 범위를 사용하여 external_ip_pools 옵션을 설정할 수 있습니다.

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

구성 파일을 변경하고 NCP를 다시 시작하여 다른 IP 풀로 변경할 수 있습니다.

NCP에서 할당된 IP 주소를 시작한 경우 IP 풀을 수정하면 안 됩니다. 다른 풀을 사용하려면 NCP가 풀의 주소를 할당하지 않았는지 확인합니다.

공유 Tier-1 토폴로지

공유 Tier-1 토폴로지를 사용하도록 설정하려면 다음 구성을 수행합니다.
  • top_tier_router 옵션을 Tier-1 게이트웨이의 ID로 설정합니다. Tier-1 게이트웨이를 외부 연결을 위해 Tier-0 게이트웨이에 연결합니다.
  • 포드 트래픽의 SNAT를 사용하도록 설정한 경우 Kubernetes 노드에 대한 세그먼트의 업링크를 top_tier_router에 설정된 동일한 Tier-0 또는 Tier-1 게이트웨이로 수정합니다.
  • single_tier_topology 옵션을 True로 설정합니다. 기본값은 False입니다.
  • NCP가 자동으로 상위 계층 라우터를 Tier-1 게이트웨이로 구성하도록 하려면 top_tier_router 옵션 설정을 해제하고 tier0_gateway 옵션을 설정합니다. NCP는 Tier-1 게이트웨이를 생성하고 이를 tier0_gateway 옵션에 지정된 Tier-0 게이트웨이에 업링크합니다.

참고: top_tier_router 옵션을 설정하고 일부 네임스페이스를 생성한 후에는 top_tier_router를 다른 값으로 업데이트하고 NCP를 다시 시작할 수 없습니다. 이 작업은 지원되지 않습니다.