수동 부하 분산 모드 사용 설정

VMware용 GKE 클러스터는 통합, 번들, 수동의 세 가지 부하 분산 모드 중 하나로 실행될 수 있습니다.

  • 통합 모드에서는 VMware용 GKE가 F5 BIG-IP 부하 분산기를 사용합니다.

  • 번들 모드에서 VMware용 GKE는 부하 분산기를 제공하고 관리합니다. 사용자는 부하 분산기의 라이선스를 가져올 필요가 없으며 설정해야 하는 양은 최소 수준입니다.

  • 수동 모드에서 VMware용 GKE는 선택한 부하 분산기로 실행됩니다. 수동 부하 분산 모드에서는 통합 모드보다 더 많은 구성을 수행해야 합니다. Citrix 부하 분산기는 수동 부하 분산 모드에서 사용할 수 있는 부하 분산기의 예시입니다.

수동 부하 분산은 다음 클러스터 유형에 지원됩니다.

  • Controlplane V2가 사용 설정된 사용자 클러스터. Controlplane V2를 사용하면 사용자 클러스터의 제어 영역 노드는 사용자 클러스터 자체에 있습니다.

  • kubeception을 사용하는 사용자 클러스터. kubeception은 사용자 클러스터의 제어 영역이 관리자 클러스터의 하나 이상의 노드에서 실행되는 경우를 나타냅니다. Controlplane V2가 사용 설정되지 않은 경우에는 사용자 클러스터에 kubeception이 사용됩니다.

이 페이지에서는 수동 부하 분산 모드를 사용하는 경우 수행해야 하는 단계를 설명합니다.

이 주제에서는 나중에 사용할 수 있도록 제어 영역 노드와 워커 노드에 대해 IP 주소를 따로 설정합니다. 또한 가상 IP(VIP)에 대해 IP 주소를 따로 설정하고 nodePort 값을 결정합니다. 이를 위해 사용하려는 IP 주소 및 nodePort 값을 선택한 후 이를 스프레드시트 또는 다른 도구에 기록합니다. 클러스터를 만들 준비가 되면 관리자 클러스터사용자 클러스터에 대한 구성 파일과 클러스터에 대한 IP 블록 파일을 작성하기 위해 IP 주소와 nodePort 값이 필요합니다.

또한 사용자 클러스터에 대해 부하 분산기를 수동으로 구성할 때 IP 주소와 nodePort 값이 필요합니다. 1.28 이상의 HA 관리자 클러스터에는 부하 분산을 구성할 필요가 없지만 이 항목에서는 제어 영역 노드의 IP 주소 및 HA 관리자 클러스터의 제어 영역 VIP 구성에 대해 설명합니다.

노드 IP 주소 따로 설정

수동 부하 분산 모드에서는 DHCP를 사용할 수 없습니다. 클러스터 노드에 고정 IP 주소를 지정해야 합니다. 관리자 클러스터의 노드와 만들려는 모든 사용자 클러스터의 노드에 충분한 주소를 따로 설정해야 합니다. 따로 설정할 노드 IP 주소 수에 대한 자세한 내용은 IP 주소 계획(Controlplane V2)IP 주소 계획(kubeception)을 참조하세요.

IP 주소 구성

따로 설정한 고정 IP 주소를 구성하는 위치는 클러스터 유형에 따라 그리고 Controlplane V2가 사용자 클러스터에 사용 설정되었는지 여부에 따라 달라집니다.

HA 관리자 클러스터

다음 표에서는 IP 주소의 용도와 HA 관리자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

고정 IP 구성
제어 영역 노드 network.controlPlaneIPBlock.ips 섹션의 관리자 클러스터 구성 파일

CP V2 사용자 클러스터

다음 표에서는 IP 주소의 용도와 Controlplane V2가 사용 설정된 사용자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

고정 IP 구성
제어 영역 노드 network.controlPlaneIPBlock.ips 섹션의 사용자 클러스터 구성 파일
워커 노드 사용자 클러스터 IP 블록 파일입니다. 사용자 클러스터 구성 파일의 network.ipMode.ipBlockFilePath 필드에 경로를 추가합니다.

Kubeception 사용자 클러스터

다음 표에서는 IP 주소의 용도와 kubeception을 사용하는 사용자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

고정 IP 구성
제어 영역 노드 관리자 클러스터 IP 블록 파일입니다. 관리자 클러스터 구성 파일의 network.ipMode.ipBlockFilePath 필드에 경로를 추가합니다.
워커 노드 사용자 클러스터 IP 블록 파일입니다. 사용자 클러스터 구성 파일의 network.ipMode.ipBlockFilePath 필드에 경로를 추가합니다.

VIP용 IP 주소 따로 설정

사용 중인 부하 분산 모드가 통합, 번들, 수동인지에 관계없이 부하 분산을 위해 가상 IP(VIP)에 사용하려는 여러 IP 주소를 따로 설정해야 합니다. 이러한 VIP는 외부 클라이언트가 Kubernetes API 서버와 사용자 클러스터의 인그레스 서비스에 연결할 수 있게 해줍니다.

VIP 구성

VIP를 구성하는 위치는 클러스터 유형에 따라 달라집니다.

HA 관리자 클러스터

다음 표에서는 VIP의 용도와 HA 관리자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

VIP 구성
관리자 클러스터의 Kubernetes API 서버의 VIP loadBalancer.vips.controlPlaneVIP 필드의 관리자 클러스터 구성 파일

CP V2 사용자 클러스터

다음 표에서는 VIP의 용도와 Controlplane V2가 사용 설정된 사용자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

VIP 구성
사용자 클러스터의 Kubernetes API 서버의 VIP loadBalancer.vips.controlPlaneVIP 필드의 사용자 클러스터 구성 파일
사용자 클러스터의 인그레스 서비스에 대한 VIP loadBalancer.vips.ingressVIP 필드의 사용자 클러스터 구성 파일

Kubeception 사용자 클러스터

다음 표에서는 VIP의 용도와 kubeception을 사용하는 사용자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

VIP 구성
사용자 클러스터의 Kubernetes API 서버의 VIP loadBalancer.vips.controlPlaneVIP 필드의 사용자 클러스터 구성 파일
사용자 클러스터의 인그레스 서비스에 대한 VIP loadBalancer.vips.ingressVIP 필드의 사용자 클러스터 구성 파일

nodePort 값을 따로 설정

VMware용 GKE에서 Kubernetes API 서버 및 인그레스 서비스는 Kubernetes 서비스에 의해 노출됩니다. 수동 부하 분산 모드에서는 이러한 서비스에 고유한 nodePort 값을 선택해야 합니다. 30000~32767 범위의 값을 선택합니다.

nodePort 값 구성

nodePort 값을 구성하는 위치는 사용자 클러스터에 ControlPlane V2가 사용 설정되었는지 여부에 따라 달라집니다.

HA 관리자 클러스터

HA 관리자 클러스터에 대해서는 nodePorts를 구성할 필요가 없습니다.

CP V2 사용자 클러스터

다음 표에서는 nodePorts의 용도와 Controlplane V2가 사용 설정된 사용자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

nodePorts 구성
사용자 클러스터의 인그레스 서비스에 대한 HTTP nodePort loadBalancer.manualLB.ingressHTTPNodePort의 사용자 클러스터 구성 파일
사용자 클러스터의 인그레스 서비스에 대한 HTTPS nodePort loadBalancer.manualLB.ingressHTTPSNodePort의 사용자 클러스터 구성 파일

VMware용 GKE가 Controlplane V2가 사용 설정된 사용자 클러스터에 대해 부하 분산을 처리하기 때문에 제어 영역 VIP에 대해 nodePort를 구성할 필요가 없습니다.

Kubeception 사용자 클러스터

다음 표에서는 nodePort 값의 용도와 kubeception을 사용하는 사용자 클러스터에 대해 이를 구성하는 위치에 대해 설명합니다.

nodePort 구성
사용자 클러스터의 Kubernetes API 서버에 대한 nodePort loadBalancer.manualLB.controlPlaneNodePort 필드의 사용자 클러스터 구성 파일
사용자 클러스터의 Konnectivity 서버에 대한 nodePort(Konnectivity 서버가 제어 영역 VIP 사용) loadBalancer.manualLB.konnectivityServerNodePort 필드의 사용자 클러스터 구성 파일
사용자 클러스터의 인그레스 서비스에 대한 HTTP nodePort loadBalancer.manualLB.ingressHTTPNodePort의 사용자 클러스터 구성 파일
사용자 클러스터의 인그레스 서비스에 대한 HTTPS nodePort loadBalancer.manualLB.ingressHTTPSNodePort의 사용자 클러스터 구성 파일

클러스터 구성 파일 예시

다음 예시에서는 관리자 및 사용자 클러스터 구성 파일 부분을 보여줍니다.

HA 관리자 클러스터

network:
  controlPlaneIPBlock:
    netmask: "255.255.248.0"
    gateway: "21.0.143.254"
    ips:
    - ip: "21.0.140.226"
      hostname: "admin-cp-vm-1"
    - ip: "21.0.141.48"
      hostname: "admin-cp-vm-2"
    - ip: "21.0.141.65"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
  kind: ManualLB

CP V2 사용자 클러스터

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879

Kubeception 사용자 클러스터

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879
    konnectivityServerNodePort: 30563
    controlPlaneNodePort: 30562

부하 분산기 구성

부하 분산기의 관리 콘솔 또는 도구를 사용하여 부하 분산기에서 다음 매핑을 구성합니다. 이를 수행하는 방법은 부하 분산기에 따라 달라집니다.

HA 관리자 클러스터

VMware용 GKE는 HA 관리자 클러스터에 대해 제어 영역 트래픽의 부하 분산을 자동으로 처리합니다. 부하 분산기에서 매핑을 구성할 필요가 없지만 loadBalancer.vips.controlPlaneVIP 필드에 IP 주소를 지정해야 합니다.

CP V2 사용자 클러스터

제어 영역 트래픽

VMware용 GKE는 Controlplane V2가 사용 설정된 사용자 클러스터에 대해 제어 영역 트래픽의 부하 분산을 자동으로 처리합니다. 부하 분산기에서 매핑을 구성할 필요가 없지만 loadBalancer.vips.controlPlaneVIP 필드에 IP 주소를 지정해야 합니다.

데이터 영역 트래픽

다음은 데이터 영역 트래픽에 대한 IP 주소 및 nodePort 값 매핑을 보여줍니다.

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

사용자 클러스터의 모든 노드(제어 영역 노드 및 워커 노드)에 대해 이러한 매핑을 추가합니다. 클러스터에 NodePort를 구성했기 때문에 Kubernetes가 모든 클러스터 노드에서 NodePort를 엽니다. 이렇게 하면 클러스터의 모든 노드가 데이터 영역 트래픽을 처리합니다.

매핑을 구성한 후 부하 분산기는 표준 HTTP 및 HTTPS 포트에서 사용자 클러스터의 인그레스 VIP에 대해 구성한 IP 주소로 트래픽을 수신 대기합니다. 부하 분산기는 클러스터의 노드로 요청을 라우팅합니다. 요청이 클러스터 노드 중 하나로 라우팅된 후에는 다시 내부 Kubernetes 네트워킹이 요청을 대상 포드로 라우팅합니다.

Kubeception 사용자 클러스터

제어 영역 트래픽

다음은 제어 영역 트래픽에 대한 IP 주소 및 nodePort 값 매핑을 보여줍니다.

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)
  • (controlPlaneVIP:8132) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort)

관리자 클러스터의 모든 노드(관리자 클러스터 및 사용자 클러스터 제어 영역 노드)에 대해 이 매핑을 추가합니다.

데이터 영역 트래픽

다음은 데이터 영역 트래픽에 대한 IP 주소 및 nodePort 값 매핑을 보여줍니다.

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

사용자 클러스터의 모든 노드에 대해 이러한 매핑을 추가합니다. kubeception을 사용하는 사용자 클러스터에서는 클러스터의 모든 노드가 워커 노드입니다.

위의 요구사항 외에도 백엔드 노드 장애가 감지되면 클라이언트 연결을 재설정하도록 부하 분산기를 구성하는 것이 좋습니다. 이 구성을 사용하지 않으면 Kubernetes API 서버의 클라이언트가 서버 인스턴스가 다운될 때 몇 분 동안 응답을 중지할 수 있으며, 이로 인해 Kubernetes 제어 영역이 불안정해질 수 있습니다.

  • F5 BIG-IP의 경우 이 설정은 백엔드 풀 구성 페이지에서 Action On Service Down이라고 합니다.
  • HAProxy의 경우 이 설정은 백엔드 서버 구성에서 on-marked-down shutdown-sessions라고 부릅니다.
  • 다른 부하 분산기를 사용하는 경우 해당 문서를 참조하여 해당하는 설정을 찾아야 합니다.

수동 부하 분산 지원 받기

Google은 수동 부하 분산 모드로 구성된 부하 분산기를 지원하지 않습니다. 부하 분산기에 문제가 발생하면 부하 분산기 공급업체에 문의하세요.

다음 단계