외부 부하 분산기 구성

외부 부하 분산기 (ELB)는 더 큰 인스턴스-외부 IP 풀에서 프로젝트에 할당된 풀의 IP 주소에서 프로젝트 외부의 서비스를 노출합니다.

ELB 가상 IP (VIP) 주소는 조직 간에 충돌하지 않으며 모든 조직에서 고유합니다. 따라서 프로젝트 외부의 클라이언트가 액세스해야 하는 서비스에만 ELB 서비스를 사용해야 합니다.

워크로드가 프로젝트에서 나갈 수 있도록 설정하면 프로젝트 내에서 실행되는 워크로드가 ELB 서비스에 액세스할 수 있습니다. 이 트래픽 패턴은 내부 서비스로 돌아가기 전에 프로젝트에서 아웃바운드 트래픽이 필요합니다.

시작하기 전에

ELB 서비스를 구성하려면 다음이 필요합니다.

  • 부하 분산기를 구성할 프로젝트를 소유해야 합니다. 자세한 내용은 프로젝트 만들기를 참조하세요.
  • 이 ELB 서비스로 트래픽을 허용하는 맞춤 ProjectNetworkPolicy (PNP) 인그레스 정책 자세한 내용은 ELB로 트래픽을 허용하도록 PNP 구성을 참고하세요.
  • 필요한 ID 및 액세스 역할:

    • 프로젝트 NetworkPolicy 관리자: 프로젝트 네임스페이스에서 프로젝트 네트워크 정책을 관리할 수 있습니다. 조직 IAM 관리자에게 프로젝트 NetworkPolicy 관리자 (project-networkpolicy-admin) 역할을 부여해 달라고 요청하세요.
    • 부하 분산기 관리자: 조직 IAM 관리자에게 부하 분산기 관리자 (load-balancer-admin) 역할을 부여해 달라고 요청하세요.

ELB로의 트래픽을 허용하도록 PNP 구성

ELB 서비스가 작동하려면 이 ELB 서비스로 트래픽을 허용하도록 맞춤설정된 ProjectNetworkPolicy 인그레스 정책을 구성하고 적용해야 합니다. 이 ELB로 트래픽을 허용할 외부 CIDR 주소를 지정합니다.

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT
  name: allow-inbound-traffic-from-external
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - ipBlock:
        cidr: CIDR
    ports:
    - protocol: TCP
      port: PORT
EOF

다음을 바꿉니다.

  • MANAGEMENT_API_SERVER: 관리 API 서버의 kubeconfig 경로입니다. 타겟 영역의 API 서버에 대한 kubeconfig 파일을 아직 생성하지 않은 경우 로그인을 참고하세요.
  • PROJECT: GDC 프로젝트의 이름입니다.
  • CIDR: ELB에 액세스해야 하는 외부 CIDR입니다. 이 정책은 외부 부하 분산기가 소스 외부 IP 주소를 유지하고 반환 경로에서 부하 분산기를 우회하는 직접 서버 반환 (DSR)을 사용하므로 필요합니다.
  • PORT: 부하 분산기 뒤에 있는 포드의 백엔드 포트입니다. 이 값은 Service 리소스의 매니페스트에 있는 .spec.ports[].targetPort 필드에서 찾을 수 있습니다.

외부 부하 분산기 만들기

GDC에서 세 가지 다른 방법을 사용하여 ELB를 만듭니다.

KRM API 및 gdcloud CLI를 사용하여 포드 또는 VM 워크로드를 타겟팅할 수 있습니다. Kubernetes 클러스터에서 Kubernetes 서비스를 직접 사용하는 경우 Service 객체가 생성된 클러스터의 워크로드만 타겟팅할 수 있습니다.