Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 Cloud Composer의 공유 VPC 네트워크 및 호스트 프로젝트 요구사항을 설명합니다.
조직에서는 공유 VPC를 사용하여 프로젝트 수준에서 예산 및 액세스 제어 경계를 설정하고, 비공개 IP를 사용하여 안전하고 효율적인 경계 간 통신을 수행할 수 있습니다. 공유 VPC 구성에서 Cloud Composer는 서비스를 공개 인터넷에 노출하지 않고도 동일한 조직의 다른 Google Cloud 프로젝트에서 호스팅되는 서비스를 호출할 수 있습니다.
공유 VPC 가이드라인
공유 VPC를 사용하려면 네트워크와 서브네트워크가 속한 호스트 프로젝트와 호스트 프로젝트에 연결된 서비스 프로젝트를 지정해야 합니다. Cloud Composer가 공유 VPC에 참여하면 Cloud Composer 환경이 서비스 프로젝트에 포함됩니다.
공유 VPC를 설정하려면 호스트 프로젝트에서 다음 IP 범위를 선택합니다.
- Cloud Composer가 Compute Engine 레이어로 사용하는 GKE 노드에서 사용하는 서브넷의 기본 IP 범위
- GKE 서비스의 보조 IP 범위
- GKE 포드의 보조 IP 범위
보조 IP 범위는 이 VPC의 다른 보조 범위와 겹칠 수 없습니다.
보조 범위가 클러스터 크기와 환경 확장을 수용할 수 있도록 충분히 큰지 확인하세요.
포드의 보조 범위 및 서비스 구성에 대한 가이드라인은 VPC 기반 클러스터 만들기를 참조하세요.
서브넷의 기본 IP 주소 범위는 예상되는 증가량을 수용할 만큼 커야 하고, 사용할 수 없는 IP 주소를 고려해야 합니다.
환경에 IP 매스커레이드 에이전트 및 비공개 IP 구성을 사용하는 경우 노드와 포드의 IP 범위를
ip-masq-agent
ConfigMap의nonMasqueradeCIDRs
섹션에 추가합니다. 자세한 내용은 IP 매스커레이드 에이전트 구성을 참조하세요.
준비
-
- 호스트 프로젝트: 공유 VPC 네트워크가 포함된 프로젝트
- 서비스 프로젝트: Cloud Composer 환경이 포함된 프로젝트
조직을 준비합니다.
호스트와 서비스 프로젝트에서 GKE API를 사용 설정합니다.
Google Cloud 콘솔을 사용하여 서비스 프로젝트에 환경을 만드는 경우 호스트 프로젝트에서 계정에
compute.subnetworks.use
권한이 있어야 합니다. 그렇지 않으면 사용 가능한 서브네트워크 목록에 호스트 프로젝트의 서브네트워크가 포함되지 않습니다.gcloud
, API, Terraform을 사용하여 환경을 만드는 경우 계정에 이 추가 권한이 필요하지 않습니다.
서비스 프로젝트 구성
Cloud Composer 환경이 서비스 프로젝트에 생성되지 않은 경우 서비스 프로젝트에서 Composer 서비스 에이전트 계정을 프로비저닝합니다.
gcloud beta services identity create --service=composer.googleapis.com`
호스트 프로젝트 구성
추가로 설명된 것처럼 호스트 프로젝트를 구성합니다.
(비공개 IP) 비공개 Google 액세스 사용 설정
비공개 IP 환경을 사용하려는 경우 호스트 프로젝트의 서브넷에 비공개 Google 액세스를 사용 설정하세요. 새 서브넷 또는 기존 서브넷에 대한 네트워킹 리소스를 구성할 때 다음 단계에서 이렇게 할 수 있습니다.
공개 IP 환경을 사용하려는 경우에도 호스트 프로젝트에서 서브넷에 비공개 Google 액세스를 사용 설정하는 것이 좋습니다. 비공개 Google 액세스를 사용하지 않으려는 경우에는 묵시적 IPv4 이그레스 허용 방화벽 규칙에서 허용하는 트래픽을 차단하지 않는지 확인해야 합니다. 이는 *.googleapis.com
엔드포인트에 성공적으로 도달하기 위해 필요합니다.
네트워킹 리소스 구성
다음 옵션 중 하나를 선택하여 네트워킹 리소스를 할당하고 구성합니다. 각 옵션에 포드 및 서비스의 보조 IP 범위 이름을 지정해야 합니다.
옵션 1. 새 VPC 네트워크, 서브넷, 2개의 보조 IP 범위를 만듭니다.
서브넷을 만들 때 위의 가이드라인에 따라 기본 IP 범위를 사용합니다.
서브넷을 정의할 때 포드와 서비스에 대해 2개의 보조 IP 범위를 정의합니다.
옵션 2. 기존 VPC에서 서브넷과 보조 IP 범위 2개를 만듭니다.
서브넷을 만들 때 위의 가이드라인에 따라 기본 IP 범위를 사용합니다.
서브넷을 정의할 때 포드와 서비스에 대해 2개의 보조 IP 범위를 정의합니다.
옵션 3. 기존 서브넷과 VPC 네트워크에 2개의 보조 IP 범위를 만듭니다.
- 가이드라인에 따라 포드와 서비스에 대해 2개의 보조 IP 범위를 정의합니다. 이름 및 IP 범위가 기존의 보조 범위와 충돌하지 않도록 방지합니다.
공유 VPC 설정 및 서비스 프로젝트 연결
아직 수행하지 않은 경우 공유 VPC를 설정합니다. 공유 VPC를 이미 설정한 경우 다음 단계로 건너뜁니다.
Cloud Composer 환경을 호스팅하는 데 사용할 서비스 프로젝트를 연결합니다.
프로젝트를 연결할 때 기본 VPC 네트워크 권한을 그대로 둡니다.
Composer 서비스 에이전트 계정에 권한 부여
호스트 프로젝트에서 다음을 수행합니다.
Composer 서비스 에이전트 계정
service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com
에 대해 권한을 수정합니다.이 계정에 대해 프로젝트 수준에서 다른 역할을 추가합니다.
비공개 IP 환경의 경우
Composer Shared VPC Agent
역할을 추가합니다.공개 IP 환경의 경우
Compute Network User
역할을 추가합니다.
Google API 서비스 에이전트 계정에 권한 부여
호스트 프로젝트에서 다음을 수행합니다.
Google API 서비스 에이전트 계정
SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com
에 대해 권한을 수정합니다.프로젝트 수준에서 다른 역할인 Compute 네트워크 사용자(
compute.networkUser
)를 추가합니다. 이 유형의 서비스 계정이 인스턴스 만들기와 같은 태스크를 수행하기 때문에 이것은 공유 VPC에 사용되는 관리형 인스턴스 그룹의 요구사항입니다.
GKE 서비스 계정 권한 수정
호스트 프로젝트에서 GKE 서비스 계정 service-SERVICE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
에 대한 권한을 수정합니다.
각 서비스 계정에 대해 다음 옵션 중 하나를 사용하여 다른 역할 compute.networkUser
를 추가합니다.
서비스 계정이 Cloud Composer에 필요한 VPC 피어링을 설정하도록 서브넷 수준에서 이 역할을 부여합니다. 여기에서는 네트워크 내에서 서브네트워크를 찾는 권한이 환경 클러스터에 부족할 수 있기 때문에 환경에 사용할 서브네트워크를 명시적으로 지정합니다.
전체 호스트 프로젝트에 대해 프로젝트 수준에서 이 역할을 부여합니다. 이 경우 서비스 프로젝트의 GKE 서비스 계정에는 호스트 프로젝트의 서브넷을 사용할 수 있는 권한이 포함됩니다.
서비스 프로젝트의 GKE 서비스 계정 권한 수정
호스트 프로젝트에서 서비스 프로젝트의 GKE 서비스 계정에 대한 권한을 수정합니다.
이 계정에 대해 프로젝트 수준에서 Kubernetes Engine 호스트 서비스 에이전트 사용자(roles/container.hostServiceAgentUser
)라는 다른 역할을 추가합니다.
그러면 서비스 프로젝트의 GKE 서비스 계정이 호스트 프로젝트의 GKE 서비스 계정을 사용하여 공유 네트워크 리소스를 구성할 수 있습니다.
(비공개 IP, 선택사항) 방화벽 규칙 및 Google 도메인에 대한 연결 구성
비공개 IP 환경이 있는 공유 VPC 구성에서는 private.googleapis.com
도메인에 속하는 여러 IP 주소를 통해 모든 트래픽을 Google API 및 서비스로 라우팅하고 해당 방화벽 규칙을 구성할 수 있습니다. 이 구성에서 환경은 Google Cloud 내에서만 라우팅할 수 있는 IP 주소를 통해 Google API 및 서비스에 액세스합니다. 공유 VPC 구성이 VPC 서비스 제어를 사용하는 경우 대신 restricted.googleapis.com
을 통해 트래픽을 라우팅합니다.
공유 VPC 구성이 비공개 IP 환경을 사용하는 경우 다음 안내를 따르세요.
- (선택사항) Google API 및 서비스에 대한 연결을 구성합니다.
- (선택사항) 방화벽 규칙을 구성합니다.
공유 VPC 구성이 VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어가 포함된 환경에 대한 안내를 대신 참조하세요.
결론
서비스 및 호스트 프로젝트 모두에 대한 공유 VPC 네트워크 구성을 완료했습니다.
이제 서비스 프로젝트에서 호스트 프로젝트의 VPC 네트워크를 사용하는 새 환경을 만들 수 있습니다.
다음 단계
- Cloud Composer 환경을 만들고 호스트 프로젝트의 네트워크 및 서브네트워크를 구성 매개변수로 제공합니다.