고급 비공개 클러스터 구성


이 페이지에서는 비공개 클러스터를 만들 때 필요할 수 있는 몇 가지 고급 구성에 대해 설명합니다. 비공개 클러스터의 기본 구성에 대해 알아보려면 비공개 클러스터 만들기를 참조하세요.

비공개 노드에 아웃바운드 인터넷 액세스 권한 부여

외부 레지스트리에서 이미지를 가져오는 것과 같이 비공개 노드에 아웃바운드 인터넷 액세스 권한을 제공하려면 Cloud NAT를 사용하여 Cloud Router를 만들고 구성합니다. Cloud NAT를 사용하면 비공개 클러스터가 인터넷을 통해 패킷을 보내고 받을 아웃바운드 연결을 설정할 수 있습니다.

Cloud Router를 사용하면 리전의 모든 노드가 기본 및 별칭 IP 범위에 Cloud NAT를 사용할 수 있습니다. 또한 외부 IP 주소가 NAT 게이트웨이에 자동으로 할당됩니다.

Cloud Router를 만들고 구성하는 방법은 Cloud NAT 문서의 Cloud Router를 사용하여 Cloud NAT 구성 만들기를 참조하세요.

공유 VPC 네트워크에서 비공개 클러스터 만들기

공유 VPC 네트워크에서 비공개 클러스터를 만드는 방법은 공유 VPC에서 비공개 클러스터 만들기를 참조하세요.

Windows Server 컨테이너 애플리케이션을 비공개 클러스터에 배포

Windows Server 컨테이너 애플리케이션을 비공개 클러스터에 배포하는 방법은 Windows 노드 풀 문서를 참조하세요.

제어 영역의 비공개 엔드포인트에 전역 액세스

제어 영역의 비공개 엔드포인트는 제어 영역 VPC 네트워크의 내부 패스 스루 네트워크 부하 분산기에 의해 구현됩니다. 내부나 Cloud VPN 터널 및 Cloud Interconnect VLAN 연결을 통해 연결된 클라이언트는 내부 패스 스루 네트워크 부하 분산기에 액세스할 수 있습니다.

기본적으로 이러한 클라이언트는 부하 분산기와 동일한 리전에 위치해야 합니다.

제어 영역 전역 액세스를 사용 설정하면 내부 패스 스루 네트워크 부하 분산기에 전역 액세스할 수 있습니다. 클라이언트 VM 및 온프레미스 시스템은 승인된 네트워크 구성에 따라 모든 리전에서 제어 영역의 비공개 엔드포인트에 연결할 수 있습니다.

내부 패스 스루 네트워크 부하 분산기 및 전역 액세스에 대한 자세한 내용은 내부 부하 분산기 및 연결된 네트워크를 참조하세요.

제어 영역 비공개 엔드포인트 전역 액세스 사용 설정

비공개 클러스터를 만들 때 기본적으로 제어 영역의 비공개 엔드포인트 전역 액세스가 사용 설정되지 않습니다. 제어 영역 전역 액세스를 사용 중지하려면 클러스터 모드를 기준으로 다음 도구를 사용합니다.

  • Standard 클러스터의 경우 Google Cloud CLI 또는 Google Cloud 콘솔을 사용할 수 있습니다.
  • Autopilot 클러스터의 경우 google_container_cluster Terraform 리소스를 사용할 수 있습니다.

Console

제어 영역 전역 액세스가 사용 설정된 새 비공개 클러스터를 만들려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭하고 Standard 또는 Autopilot 섹션에서 구성을 클릭합니다.

  3. 이름을 입력합니다.

  4. 탐색창에서 네트워킹을 클릭합니다.

  5. 비공개 클러스터를 선택합니다.

  6. 제어 영역 전역 액세스 사용 체크박스를 선택합니다.

  7. 다른 필드를 원하는 대로 구성합니다.

  8. 만들기를 클릭합니다.

기존 비공개 클러스터에 제어 영역 전역 액세스를 사용 설정하려면 다음 단계를 수행하세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 수정하려는 클러스터 옆에 있는 작업을 클릭한 다음 수정을 클릭합니다.

  3. 네트워킹 섹션에서 제어 영역 전역 액세스 옆에 있는 수정을 클릭합니다.

  4. 제어 영역 전역 액세스 수정 대화상자에서 제어 영역 전역 액세스 사용 체크박스를 선택합니다.

  5. 변경사항 저장을 클릭합니다.

gcloud

--enable-master-global-access 플래그를 추가하여 제어 영역의 비공개 엔드포인트에 대한 전역 액세스가 사용 설정된 비공개 클러스터를 만듭니다.

gcloud container clusters create CLUSTER_NAME \
    --enable-private-nodes \
    --enable-master-global-access

기존 비공개 클러스터에 제어 영역의 비공개 엔드포인트에 대한 전역 액세스를 사용 설정할 수도 있습니다.

gcloud container clusters update CLUSTER_NAME \
    --enable-master-global-access

제어 영역 비공개 엔드포인트 전역 액세스 확인

다음 명령어를 실행하고 출력을 확인하여 제어 영역의 비공개 엔드포인트에 대한 전역 액세스가 사용 설정되었는지 확인할 수 있습니다.

gcloud container clusters describe CLUSTER_NAME

출력에는 masterGlobalAccessConfig의 상태를 볼 수 있는 privateClusterConfig 섹션이 포함됩니다.

privateClusterConfig:
  enablePrivateNodes: true
  masterIpv4CidrBlock: 172.16.1.0/28
  peeringName: gke-1921aee31283146cdde5-9bae-9cf1-peer
  privateEndpoint: 172.16.1.2
  publicEndpoint: 34.68.128.12
  masterGlobalAccessConfig:
    enabled: true

다른 네트워크에서 제어 영역의 비공개 엔드포인트에 액세스

GKE 비공개 클러스터를 만들고 제어 영역의 공개 엔드포인트를 사용 중지하는 경우 제어 영역의 비공개 엔드포인트를 사용하여 kubectl과 같은 도구로 클러스터를 관리해야 합니다. 다음을 포함하여 다른 네트워크에서 클러스터 제어 영역의 비공개 엔드포인트에 액세스할 수 있습니다.

  • Cloud VPN 터널 또는 Cloud Interconnect VLAN 연결을 사용하여 클러스터의 VPC 네트워크에 연결된 온프레미스 네트워크
  • Cloud VPN 터널을 사용하여 클러스터의 VPC 네트워크에 연결된 다른 VPC 네트워크

다음 다이어그램은 온프레미스 네트워크와 GKE 제어 영역 노드 사이의 라우팅 경로를 보여줍니다.

온프레미스 VPC와 클러스터 제어 영역 간의 라우팅을 보여주는 다이어그램

다른 네트워크의 시스템을 클러스터의 제어 영역 비공개 엔드포인트에 연결하도록 허용하려면 다음 요구사항을 완료합니다.

  1. 클러스터 및 제어 영역의 비공개 엔드포인트와 관련된 네트워크 정보를 식별하고 기록합니다.

    gcloud container clusters describe CLUSTER_NAME \
       --location=COMPUTE_LOCATION \
       --format="yaml(network, privateClusterConfig)"
    

    다음을 바꿉니다.

    명령어 출력에서 다음 단계에 사용할 다음 정보를 식별하고 기록합니다.

    • network: 클러스터 VPC 네트워크의 이름 또는 URI입니다.
    • privateEndpoint: 제어 영역의 비공개 엔드포인트 또는 바깥쪽 IPv4 CIDR 범위(masterIpv4CidrBlock)의 IPv4 주소입니다.
    • peeringName: 클러스터의 VPC 네트워크를 제어 영역의 VPC 네트워크에 연결하는 데 사용되는 VPC 네트워크 피어링 연결의 이름입니다.

    출력은 다음과 비슷합니다.

    network: cluster-network
    privateClusterConfig:
      enablePrivateNodes: true
      masterGlobalAccessConfig:
        enabled: true
      masterIpv4CidrBlock: 172.16.1.0/28
      peeringName: gke-1921aee31283146cdde5-9bae-9cf1-peer
      privateEndpoint: 172.16.1.2
      publicEndpoint: 34.68.128.12
    
  2. 클러스터의 VPC 네트워크에 있는 모든 리전에서 패킷을 수신할 수 있도록 제어 영역 비공개 엔드포인트 전역 액세스를 사용 설정합니다. 제어 영역 비공개 엔드포인트 전역 액세스를 사용 설정하면 클러스터 리전뿐만 아니라 모든 리전에 있는 Cloud VPN 터널 또는 Cloud Interconnect VLAN 연결을 사용하여 비공개 엔드포인트에 연결할 수 있습니다.

  3. 다른 네트워크에서 privateEndpoint IP 주소 또는 masterIpv4CidrBlock IP 주소 범위에 대한 경로를 만듭니다. 제어 영역의 비공개 엔드포인트 IP 주소는 항상 masterIpv4CidrBlock IPv4 주소 범위 내에 있으므로 privateEndpoint IP 주소 또는 바깥쪽 범위에 대한 경로를 만들면 다음에 해당하는 경우 다른 네트워크에서 제어 영역의 비공개 엔드포인트로의 패킷 경로가 제공됩니다.

    • 다른 네트워크는 동적(BGP) 경로를 사용하는 Cloud Interconnect VLAN 연결 또는 Cloud VPN 터널을 사용하여 클러스터의 VPC 네트워크에 연결하는 경우. Cloud Router 커스텀 경로 공지를 사용합니다. 자세한 내용은 Cloud Router 문서의 커스텀 IP 범위 공지를 참조하세요.

    • 다른 네트워크는 동적 경로를 사용하지 않는 기본 VPN 터널을 사용하여 클러스터의 VPC 네트워크에 연결하는 경우. 다른 네트워크에는 정적 경로를 구성해야 합니다.

  4. VPC 네트워크의 피어링 관계에서 커스텀 경로를 제어 영역의 VPC 네트워크로 내보내도록 클러스터의 VPC 네트워크를 구성합니다. Google Cloud는 항상 클러스터의 VPC 네트워크에서 커스텀 경로를 가져오도록 제어 영역의 VPC 네트워크를 구성합니다. 이 단계에서는 제어 영역의 비공개 엔드포인트에서 다른 네트워크로의 패킷 경로를 제공합니다.

    클러스터의 VPC 네트워크에서 커스텀 경로 내보내기를 사용 설정하려면 다음 명령어를 사용합니다.

    gcloud compute networks peerings update PEERING_NAME \
        --network=CLUSTER_VPC_NETWORK \
        --export-custom-routes
    

    다음을 바꿉니다.

    • PEERING_NAME: 클러스터의 VPC 네트워크를 제어 영역 VPC 네트워크에 연결하는 피어링의 이름입니다.
    • CLUSTER_VPC_NETWORK: 클러스터 VPC 네트워크의 이름 또는 URI입니다.

    커스텀 경로 내보내기가 VPC에 사용 설정된 경우 Google Cloud IP 범위와 겹치는 경로를 만들면 클러스터가 손상될 수 있습니다.

    기존 VPC 네트워크 피어링 연결의 경로 교환을 업데이트하는 방법에 대한 자세한 내용은 피어링 연결 업데이트를 참조하세요.

    클러스터의 VPC 네트워크에 있는 커스텀 경로에는 온프레미스 네트워크와 같은 다른 네트워크의 IP 주소 범위가 대상인 경로가 포함됩니다. 이러한 경로가 제어 영역의 VPC 네트워크에서 피어링 커스텀 경로로 적용되도록 하려면 다른 네트워크에서 지원되는 대상을 참조하세요.

다른 네트워크에서 지원되는 대상

다른 네트워크가 클러스터의 VPC 네트워크에 있는 Cloud Router로 보내는 주소 범위는 다음 조건을 준수해야 합니다.

  • 클러스터의 VPC는 기본 경로(0.0.0.0/0)를 허용할 수 있지만 제어 영역의 VPC 네트워크는 이미 로컬 기본 경로를 포함하고 있기 때문에 항상 기본 경로를 거부합니다. 다른 네트워크가 VPC 네트워크에 기본 경로를 보낼 경우 다른 네트워크는 제어 영역의 비공개 엔드포인트에 연결해야 하는 시스템의 특정 대상도 보내야 합니다. 자세한 내용은 라우팅 순서를 참조하세요.

  • 제어 영역의 VPC 네트워크가 기본 경로를 효과적으로 대체하는 경로를 허용하는 경우 이 경로는 Google Cloud API 및 서비스에 대한 연결을 끊고 클러스터 제어 영역을 중단합니다. 예를 들어 다른 네트워크는 대상이 0.0.0.0/1128.0.0.0/1인 경로를 공지하면 안 됩니다. 대안은 앞의 항목을 참조하세요.

Cloud Router 한도, 특히 학습된 경로의 고유한 최대 대상 수를 모니터링합니다.

VPC 서비스 제어를 사용하여 비공개 클러스터 보호

VPC 서비스 제어를 사용하여 GKE 비공개 클러스터의 보호를 강화할 수 있습니다.

VPC 서비스 제어는 데이터 무단 반출 위험을 줄이기 위해 GKE 비공개 클러스터에 추가 보안을 제공합니다. VPC 서비스 제어를 사용하면 서비스 경계에 프로젝트를 추가하여 외부 요청으로부터 리소스와 서비스를 보호할 수 있습니다.

서비스 경계에 대한 자세한 내용은 서비스 경계 세부정보 및 구성을 참조하세요.

VPC 서비스 제어 서비스 경계에서 GKE 비공개 클러스터와 함께 Artifact Registry를 사용하는 경우 데이터 무단 반출을 방지하기 위해 제한된 가상 IP로 라우팅을 구성해야 합니다.