vDS 네트워킹에 vSphere with Tanzu를 사용하는 경우 HAProxy는 Tanzu Kubernetes 제어부에 액세스하는 개발자를 위해 그리고 로드 밸런서 유형의 Kubernetes 서비스에 대해 로드 밸런싱을 제공합니다. HAProxy 로드 밸런서에 대해 구현할 수 있는 가능한 토폴로지를 검토합니다.

감독자 클러스터의 워크로드 네트워크

vSphere 네트워킹 스택을 사용하여 감독자 클러스터를 구성하려면 클러스터의 모든 호스트를 vSphere Distributed Switch에 연결해야 합니다. 감독자 클러스터 워크로드 네트워크에 대해 구현하는 토폴로지에 따라 하나 이상의 분산 포트 그룹을 생성합니다. 포트 그룹을 vSphere 네임스페이스에 대한 워크로드 네트워크로 지정합니다.

감독자 클러스터에 호스트를 추가하기 전에 클러스터에 포함된 모든 vSphere Distributed Switch에 호스트를 추가해야 합니다.

워크로드 네트워크는 Tanzu Kubernetes 클러스터 노드 및 감독자 클러스터 제어부 VM에 대한 연결을 제공합니다. Kubernetes 제어부 VM에 대한 연결을 제공하는 워크로드 네트워크를 기본 워크로드 네트워크라고 합니다. 각 감독자 클러스터에는 기본 워크로드 네트워크가 하나씩 있어야 합니다. 분산 포트 그룹 중 하나를 감독자 클러스터에 대한 기본 워크로드 네트워크로 지정해야 합니다.
참고: 워크로드 네트워크는 감독자 클러스터를 사용하도록 설정할 때만 추가되며 나중에 추가할 수 없습니다.

감독자 클러스터의 Kubernetes 제어부 VM은 기본 워크로드 네트워크에 할당된 IP 주소 범위에서 3개의 IP 주소를 사용합니다. Tanzu Kubernetes 클러스터의 각 노드에는 Tanzu Kubernetes 클러스터가 실행되는 네임스페이스로 구성된 워크로드 네트워크의 주소 범위에서 할당된 별도의 IP 주소가 있습니다.

IP 범위 할당

HA Proxy 로드 밸런서가 있는 감독자 클러스터의 네트워킹 토폴로지를 계획하는 경우 두 가지 유형의 IP 범위를 갖도록 계획합니다.
  • HAProxy에 대한 가상 IP 할당 범위입니다. HAProxy의 가상 서버에 대해 구성하는 IP 범위는 로드 밸런서 장치에 의해 예약됩니다. 예를 들어 가상 IP 범위가 192.168.1.0/24인 경우 가상 IP 트래픽 이외의 트래픽은 해당 범위의 모든 호스트에 액세스할 수 없습니다.
    참고: 해당 게이트웨이에 대한 모든 경로가 실패하기 때문에 HAProxy 가상 IP 범위 내에 게이트웨이를 구성하지 않아야 합니다.
  • 감독자 클러스터Tanzu Kubernetes 클러스터의 노드에 대한 IP 범위입니다. 감독자 클러스터의 Kubernetes 제어부 VM에는 각각 하나의 IP 주소가 할당되어 총 3개의 IP 주소가 할당됩니다. 또한 Tanzu Kubernetes 클러스터의 각 노드에는 별도의 IP가 할당됩니다. 네임스페이스에 구성하는 감독자 클러스터의 각 워크로드 네트워크에 고유한 IP 범위를 할당해야 합니다.

하나의 /24 네트워크를 포함하는 구성 예:

  • 네트워크: 192.168.120.0/24
  • HAProxy VIP: 192.168.120.128/25
  • HAProxy 워크로드 인터페이스에 대한 IP 주소 1개: 192.168.120.5

처음 128개 주소 내에서 사용 가능한 IP에 따라 감독자 클러스터의 워크로드 네트워크에 대한 IP 범위를 정의할 수 있습니다. 예:

  • 기본 워크로드 네트워크용 192.168.120.31-192.168.120.40
  • 다른 워크로드 네트워크용 192.168.120.51-192.168.120.60
참고: 워크로드 네트워크에 대해 정의하는 범위는 HAProxy VIP 범위와 겹치지 않아야 합니다.

HAProxy 네트워크 토폴로지

HAProxy 배포를 위한 네트워크 구성 옵션에는 기본프런트 엔드라는 두 가지가 있습니다. 기본 네트워크에는 2가지 NIC가 있으며, 하나는 관리 네트워크용이고, 다른 하나는 워크로드 네트워크용입니다. 프런트 엔드 네트워크에는 관리 네트워크, 워크로드 네트워크, 클라이언트용 프런트 엔드 네트워크라는 3가지 NIC가 있습니다. 각 네트워크의 특성은 표에 나열 및 설명되어 있습니다.

운영 설치의 경우 프런트 엔드 네트워크 구성을 사용하여 HAProxy 로드 밸런서를 배포하는 것이 좋습니다. 기본 구성을 사용하여 HAProxy 로드 밸런서를 배포하는 경우에는 워크로드 네트워크에 /24 IP 주소 블록 크기를 할당하는 것이 좋습니다. 두 가지 구성 옵션 모두에서 DHCP는 권장되지 않습니다.
네트워크 특성
관리
감독자 클러스터는 관리 네트워크를 사용하여 HAProxy 로드 밸런서를 연결하고 프로그래밍합니다.
  • HAProxy 데이터부 API 끝점은 관리 네트워크에 연결된 네트워크 인터페이스에 바인딩됩니다.
  • HAProxy 제어부 VM에 할당된 관리 IP 주소는 관리 네트워크의 고정 IP여야 합니다. 그래야 감독자 클러스터가 로드 밸런서 API에 안정적으로 연결할 수 있습니다.
  • HAProxy VM의 기본 게이트웨이는 이 네트워크에 있어야 합니다.
  • 이 네트워크에서 DNS 쿼리가 발생해야 합니다.
워크로드
HAProxy 제어부 VM은 워크로드 네트워크를 사용하여 감독자 클러스터 및 Tanzu Kubernetes 클러스터 노드의 서비스에 액세스합니다.
  • HAProxy 제어부 VM은 이 네트워크에 있는 감독자 및 Tanzu Kubernetes 클러스터 노드로 트래픽을 전달합니다.
  • HAProxy 제어부 VM이 기본 모드(NIC 2개)로 배포된 경우 워크로드 네트워크는 로드 밸런서 서비스에 액세스하는 데 사용되는 논리적 네트워크를 제공해야 합니다.
  • 기본 구성에서는 로드 밸런서 가상 IP와 Kubernetes 클러스터 노드 IP를 이 네트워크에서 가져옵니다. 네트워크 내에서 서로 겹치지 않는 별도의 범위로 정의됩니다.
참고: 워크로드 네트워크는 관리 네트워크와 다른 서브넷에 있어야 합니다. 시스템 요구 사항을 참조하십시오.
프런트 엔드(선택 사항)

클러스터 워크로드에 액세스하는 외부 클라이언트(예: 사용자 또는 애플리케이션)는 프런트 엔드 네트워크를 사용하여 가상 IP 주소를 사용하는 백엔드 로드 밸런싱된 서비스에 액세스합니다.

  • 프런트 엔드 네트워크는 HAProxy 제어부 VM이 3개의 NIC를 사용하여 배포된 경우에만 사용됩니다.
  • 운영 설치에 권장됩니다.
  • 프런트 엔드 네트워크는 VIP(가상 IP 주소)를 노출하는 위치입니다. HAProxy는 트래픽을 밸런싱하고 적절한 백엔드로 전달합니다.

아래 다이어그램은 프런트 엔드 네트워크 토폴로지를 사용하는 HAProxy 배포를 보여줍니다. 이 다이어그램은 설치 및 구성 프로세스 중에 구성 필드가 필요한 위치를 나타냅니다.

""

가상 NIC가 두 개인 HA 프록시 및 워크로드 네트워크가 한 개인 감독자 클러스터 토폴로지

이 토폴로지에서는 다음 구성 요소에 대해 워크로드 네트워크가 한 개인 감독자 클러스터를 구성합니다.

  • Kubernetes 제어부 VM
  • Tanzu Kubernetes 클러스터의 노드.
  • 외부 서비스 및 DevOps 사용자가 연결되는 HAProxy 가상 IP 범위. 이 구성에서는 HAProxy가 가상 NIC 두 개(기본 구성)로 배포되며, 하나는 관리 네트워크에 연결되고 다른 하나는 기본 워크로드 네트워크에 연결됩니다. 기본 워크로드 네트워크와는 별도의 서브넷에 가상 IP를 할당하도록 계획해야 합니다.
하나의 포트 그룹을 감독자 클러스터에 대한 기본 워크로드 네트워크로 지정한 다음, 동일한 포트 그룹을 vSphere 네임스페이스용 워크로드 네트워크로 사용합니다. 감독자 클러스터, Tanzu Kubernetes 클러스터, HAProxy, DevOps 사용자, 외부 서비스는 모두 기본 워크로드 네트워크로 설정된 동일한 분산 포트 그룹에 연결됩니다.
그림 1. 하나의 네트워크에서 지원하는 감독자 클러스터

하나의 네트워크에서 지원하는 감독자 클러스터
DevOps 사용자 또는 외부 애플리케이션에 대한 트래픽 경로는 다음과 같습니다.
  1. DevOps 사용자 또는 외부 서비스는 분산 포트 그룹의 워크로드 네트워크 서브넷에 있는 가상 IP로 트래픽을 전송합니다.
  2. HAProxy는 가상 IP 트래픽을 Tanzu Kubernetes 노드 IP 또는 제어부 VM IP로 로드 밸런싱합니다. HAProxy는 해당 IP에서 들어오는 트래픽을 로드 밸런싱할 수 있도록 가상 IP 주소를 할당합니다.
  3. 제어부 VM 또는 Tanzu Kubernetes 클러스터 노드는 각각 감독자 클러스터 또는 Tanzu Kubernetes 클러스터 내에서 실행되는 대상 포드로 트래픽을 전달합니다.

가상 NIC가 두 개인 HA 프록시 및 격리된 워크로드 네트워크가 있는 감독자 클러스터 토폴로지

이 토폴로지에서는 다음 구성 요소에 대한 네트워크를 구성합니다.
  • Kubernetes 제어부 VM. Kubernetes 제어부 VM에 대한 트래픽을 처리하기 위한 기본 워크로드 네트워크입니다.
  • Tanzu Kubernetes 클러스터 노드. 사용자가 감독자 클러스터의 모든 네임스페이스에 할당하는 워크로드 네트워크. 이 네트워크는 Tanzu Kubernetes 클러스터 노드를 연결합니다.
  • HAProxy 가상 IP. 이 구성에서는 HAProxy VM이 가상 NIC 두 개(기본 구성)로 배포됩니다. HAProxy VM을 기본 워크로드 네트워크 또는 네임스페이스에 사용하는 워크로드 네트워크에 연결할 수 있습니다. vSphere에 이미 있으며 기본 및 워크로드 네트워크에 라우팅할 수 있는 VM 네트워크에 HAProxy를 연결할 수도 있습니다.
감독자 클러스터는 기본 워크로드 네트워크를 지원하는 분산 포트 그룹에 연결되고, Tanzu Kubernetes 클러스터는 워크로드 네트워크를 지원하는 분산 포트 그룹에 연결됩니다. 두 포트 그룹은 계층 3 라우팅이 가능해야 합니다. VLAN을 통해 계층 2 분리를 구현할 수 있습니다. 계층 3 트래픽 필터링은 IP 방화벽과 게이트웨이를 통해 가능합니다.
그림 2. 하나의 분리된 워크로드 네트워크가 있는 감독자 클러스터

분리된 워크로드 네트워크가 있는 감독자 클러스터
DevOps 사용자 또는 외부 서비스에 대한 트래픽 경로는 다음과 같습니다.
  1. DevOps 사용자 또는 외부 서비스는 트래픽을 가상 IP로 전송합니다. 트래픽은 HAProxy가 연결된 네트워크로 라우팅됩니다.
  2. HAProxy는 가상 IP 트래픽을 Tanzu Kubernetes 노드 IP 또는 제어부 VM으로 로드 밸런싱합니다. HAProxy는 해당 IP에서 들어오는 트래픽을 로드 밸런싱할 수 있도록 가상 IP 주소를 할당합니다.
  3. 제어부 VM 또는 Tanzu Kubernetes 클러스터 노드는 Tanzu Kubernetes 클러스터 내에서 실행되는 대상 포드로 트래픽을 전달합니다.

가상 NIC가 두 개인 HA 프록시 및 다중 워크로드 네트워크가 있는 감독자 클러스터 토폴로지

이 토폴로지에서는 기본 워크로드 네트워크 역할을 하는 하나의 포트 그룹과 각 네임스페이스에 대한 워크로드 네트워크 역할을 하는 전용 포트 그룹을 구성할 수 있습니다. HAProxy는 가상 NIC 두 개를 사용하여 배포되며(기본 구성), 기본 워크로드 네트워크 또는 임의의 워크로드 네트워크에 연결할 수 있습니다. 기본 및 워크로드 네트워크로 라우팅할 수 있는 기존 VM 네트워크를 사용할 수도 있습니다.

이 토폴로지의 DevOps 사용자 및 외부 서비스에 대한 트래픽 경로는 분리된 워크로드 네트워크 토폴로지와 동일합니다.
그림 3. 여러 개의 분리된 워크로드 네트워크에서 지원하는 감독자 클러스터

여러 개의 분리된 워크로드 네트워크에서 지원하는 감독자 클러스터

가상 NIC가 세 개인 HA 프록시 및 다중 워크로드 네트워크가 있는 감독자 클러스터 토폴로지

이 구성에서는 3개의 가상 NIC를 사용하여 HAProxy VM을 배포합니다. 따라서 HAProxy를 프런트 엔드 네트워크에 연결합니다. DevOps 사용자 및 외부 서비스는 프런트 엔드 네트워크의 가상 IP를 통해 HAProxy에 액세스할 수 있습니다. 운영 환경에는 가상 NIC가 세 개인 HA 프록시를 배포하는 것이 좋습니다.
그림 4. 3개의 가상 NIC를 사용하여 배포된 HAProxy

3개의 가상 NIC를 사용하여 배포된 HAProxy

가능한 토폴로지 중에서 선택

가능한 각 토폴로지 중에서 선택하기 전에 해당 환경의 요구 사항을 평가합니다.

  1. 감독자 클러스터Tanzu Kubernetes 클러스터 간에 계층 2 분리가 필요합니까?
    1. 아니요: 모든 구성 요소를 처리하는 하나의 워크로드 네트워크를 사용하는 가장 간단한 토폴로지입니다.
    2. 예: 별도의 기본 및 워크로드 네트워크를 사용하는 분리된 워크로드 네트워크 토폴로지입니다.
  2. Tanzu Kubernetes 클러스터 간에 추가적인 계층 2 분리가 필요합니까?
    1. 아니요: 별도의 기본 및 워크로드 네트워크를 사용하는 분리된 워크로드 네트워크 토폴로지입니다.
    2. 예: 각 네임스페이스 및 전용 기본 워크로드 네트워크에 별도의 워크로드 네트워크를 사용하는 다중 워크로드 네트워크 토폴로지입니다.
  3. DevOps 사용자 및 외부 서비스가 Kubernetes 제어부 VM 및 Tanzu Kubernetes 클러스터 노드로 직접 라우팅하지 못하도록 하시겠습니까?
    1. 아니요: 2개 NIC의 HAProxy 구성입니다.
    2. 예: 3개 NIC HAProxy 구성입니다. 이 구성은 운영 환경에 권장됩니다.