VPC 클러스터: 로드 밸런서를 통해 내 앱이 연결될 수 없는 이유는 무엇입니까?

VPC 로드 밸런서 서비스를 통해 앱에 접속할 수 없는 경우, VPC 로드 밸런서의 연결 문제를 해결하십시오.

인프라 제공업체: VPC

사용자가 VPC 클러스터에서 Kubernetes LoadBalancer 서비스를 작성하여 앱을 노출했습니다. Kubernetes LoadBalancer에 지정된 호스트 이름을 사용하여 앱에 연결을 시도하면, 연결에 실패하거나 제한시간이 초과됩니다.

oc describe svc <kubernetes_lb_service_name>을 실행하면 이벤트 섹션에 다음 중 하나와 유사한 경고 메시지가 표시될 수 있습니다.

The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service is offline.
The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service was deleted from your VPC.

클러스터에서 Kubernetes LoadBalancer 서비스를 작성하면 VPC 로드 밸런서가 VPC에 자동으로 작성됩니다. VPC 로드 밸런서는 Kubernetes LoadBalancer 서비스가 노출하는 앱에만 요청을 라우팅합니다.

다음 상황에서는 요청을 앱으로 라우팅할 수 없습니다.

  • VPC 보안 그룹이 앱에 대한 수신 요청을 포함하여 작업자 노드에 대한 수신 트래픽을 차단하고 있습니다.
  • 로드 밸런서 프로비저닝 오류 또는 VSI 연결 오류로 인해 VPC 로드 밸런서가 오프라인입니다.
  • VPC 로드 밸런서가 VPC 콘솔 또는 CLI를 통해 삭제되었습니다.
  • VPC 로드 밸런서의 DNS 항목이 계속 등록 중입니다.
  • 계정당 허용된 최대 VPC 로드 밸런서 수에 도달했습니다. VPC 할당량 문서에서 VPC에 있는 모든 VPC 클러스터의 VPC 리소스 할당량을 확인하십시오.

클러스터에 대한 트래픽을 차단하는 VPC 보안 그룹이 없고 VPC 로드 밸런서가 사용 가능한지 확인하십시오.

  1. Kubernetes LoadBalancer 서비스용 VPC 로드 밸런서가 있는지 확인하십시오. 출력에서 kube-<cluster_ID>-<kubernetes_lb_service_UID> 형식의 VPC 로드 밸런서를 찾으십시오. oc get svc <service_name> -o yaml을 실행하여 Kubernetes LoadBalancer 서비스 UID를 가져올 수 있습니다.

    ibmcloud is load-balancers
    
    • VPC 로드 밸런서가 나열되지 않으면 다음 이유 중 하나로 존재하지 않는 것입니다.
    • 계정당 허용된 최대 VPC 로드 밸런서 수에 도달했습니다. VPC에 있는 모든 VPC 클러스터에서 최대 20개의 VPC 로드 밸런서를 작성할 수 있습니다. 작성하는 각 Kubernetes LoadBalancer 서비스마다 하나의 VPC 로드 밸런서가 작성되며 요청을 해당 Kubernetes LoadBalancer 서비스로만 라우팅합니다.
    • VPC 로드 밸런서가 VPC 콘솔 또는 CLI를 통해 삭제되었습니다. Kubernetes LoadBalancer 서비스용 VPC 로드 밸런서를 다시 작성하려면 ibmcloud oc cluster master refresh --cluster <cluster_name_or_id>를 실행하여 Kubernetes 마스터를 다시 시작하십시오.

    VPC 클러스터에서 앱에 대한 로드 밸런싱 설정을 제거하려면 oc delete svc <kubernetes_lb_service_name>을 실행하여 Kubernetes LoadBalancer 서비스를 삭제하십시오. Kubernetes LoadBalancer 서비스와 연관된 VPC 로드 밸런서가 VPC에서 자동으로 삭제됩니다.

  2. 로드 밸런서가 있는 경우 로드 밸런서에 연결된 VPC 보안 그룹을 보십시오. 로드 밸런서에 자동으로 첨부되는 kube-lbaas-<cluster-id> 보안 그룹을 수정한 경우 보안 그룹에서 원래 규칙을 다시 설정하십시오.

    • VPC 로드 밸런서가 나열되고 연결된 보안 그룹을 수정하지 않은 경우 다음과 같은 이유로 응답하지 않을 수 있습니다.
      • DNS 항목이 계속 등록 중일 수 있습니다. VPC 로드 밸런서가 작성될 때, 호스트 이름은 공용 DNS를 통해 등록됩니다. 경우에 따라 이 DNS 항목이 클라이언트가 사용 중인 특정 DNS에 복제되는 데 몇 분이 소요될 수 있습니다. 호스트 이름이 DNS에 등록되기를 기다리거나 IP 주소 중 하나를 사용하여 VPC 로드 밸런서에 직접 액세스할 수 있습니다. VPC 로드 밸런서 IP 주소를 찾으려면 ibmcloud is lb <LB_ID>를 실행하고 공인 IP 필드를 찾으십시오.
      • 몇 분 후에 로드 밸런서에 연결할 수 없는 경우 로드 밸런서가 프로비저닝 또는 연결 문제로 인해 오프라인 상태일 수 있습니다. IBM Cloud 지원 케이스를 여십시오. 유형에는 기술을 선택하십시오. 카테고리에는 VPC 섹션의 네트워크를 선택하십시오. 설명에는 클러스터 ID와 VPC 로드 밸런서 ID를 포함하십시오.