버전 1.9

GKE에서 멀티 프로젝트 설치 및 마이그레이션

이 가이드에서는 다른 Google Cloud 프로젝트에 있는 여러 GKE 클러스터를 포함하는 메시의 Anthos Service Mesh를 설치하거나 오픈소스 Istio에서 Anthos Service Mesh로 마이그레이션하는 방법을 설명합니다.

이 가이드는 다음과 같은 온보딩 사용 사례에 사용할 수 있습니다.

  • Anthos Service Mesh 1.9.3 신규 설치

  • 오픈소스 Istio 1.8 or 1.9에서 Anthos Service Mesh 1.9.3 버전으로 마이그레이션 이전 버전의 Istio를 사용하는 경우에는 업그레이드를 먼저 진행한 후에 Anthos Service Mesh로 마이그레이션해야 합니다.

여러 프로젝트에 클러스터가 있는 서비스 메시에는 일부 기능을 사용할 수 없습니다. 특히 Cloud Console의 Anthos Service Mesh 대시보드는 현재 사용할 수 없습니다. 그러나 각 프로젝트에 대해 Cloud Logging의 로그와 Cloud Monitoring의 측정항목은 계속 볼 수 있습니다.

시작하기 전에

이 가이드에서는 다음 작업을 이미 완료했다고 가정합니다.

Istio에서 마이그레이션하는 경우 Istio에서 마이그레이션 준비를 참조하세요.

Anthos 및 Anthos Service Mesh 차이점

Anthos Service Mesh는 Anthos 또는 독립형 서비스로 사용할 수 있습니다. Google API는 결제 방법을 결정하는 데 사용됩니다. Anthos Service Mesh를 독립형 서비스로 사용하려면 프로젝트에 Anthos API를 사용 설정하지 마세요. Anthos Service Mesh 가격에 대한 자세한 내용은 가격 책정을 참조하세요.

  • Anthos 구독자는 Anthos API를 사용 설정해야 합니다.

    API 사용 설정

  • Anthos 구독자가 아닌 경우에도 Anthos Service Mesh를 설치할 수 있지만 Google Cloud Console의 특정 UI 요소 및 기능은 Anthos 구독자에게만 제공됩니다. 구독자와 비구독자가 사용할 수 있는 항목에 대한 자세한 내용은 Anthos 및 Anthos Service Mesh UI 차이점을 참조하세요.

  • Anthos API를 사용 설정했지만 Anthos Service Mesh를 독립형 서비스로 사용하려면 Anthos API를 사용 중지합니다.

요구사항

  • 클러스터가 서로 다른 프로젝트에 있으므로 이들은 공유 Virtual Private Cloud(VPC)에 있어야 합니다. 클러스터 구성에 대한 자세한 내용은 공유 VPC를 사용하여 클러스터 설정을 참조하세요.

  • GKE 클러스터는 다음 요구사항을 충족해야 합니다.

    • vCPU가 4개 이상 있는 머신 유형(예: e2-standard-4). 클러스터의 머신 유형에 4개 미만의 vCPU가 있으면 여러 머신 유형에 워크로드 마이그레이션에 설명된 대로 머신 유형을 변경합니다.

    • 최소 노드 수는 머신 유형에 따라 다릅니다. Anthos Service Mesh에는 최소 8개의 vCPU가 필요합니다. 머신 유형에 vCPU가 4개 있는 경우 클러스터에는 노드가 2개 이상 있어야 합니다. 머신 유형에 vCPU가 8개 있는 경우 클러스터에는 노드가 1개만 필요합니다. 노드를 추가해야 하는 경우 클러스터 크기 조절을 참조하세요.

    • Anthos Service Mesh를 설치하기 전에 클러스터를 준비하려면 워크로드 아이덴티티를 사용 설정합니다. 워크로드 아이덴티티는 Google API 호출에 권장되는 방법입니다. 워크로드 아이덴티티를 사용 설정하면 워크로드 아이덴티티 제한사항의 설명대로 워크로드에서 Google API로 호출이 보호되는 방식이 변경됩니다.

    • 선택사항이지만 출시 채널에 클러스터를 등록하는 것이 좋습니다. 다른 채널은 Anthos Service Mesh 1.9.3에서 지원되지 않는 GKE 버전을 기반으로 하는 경우가 있으므로 일반 출시 채널에 등록하는 것이 좋습니다. 자세한 내용은 지원되는 환경을 참조하세요. 정적 GKE 버전이 있는 경우 출시 채널에 기존 클러스터 등록의 안내를 따릅니다.

  • 서비스 메시에 포함하려면 서비스 포트의 이름이 지정되어야 하며 이름은 name: protocol[-suffix] 구문에서 포트 프로토콜을 포함해야 합니다. 여기서 대괄호는 대시로 시작해야 하는 선택적 서픽스를 나타냅니다. 자세한 내용은 서비스 포트 이름 지정을 참조하세요.

  • 비공개 클러스터에 Anthos Service Mesh를 설치하는 경우 자동 사이드카 삽입과 함께 사용되는 웹훅을 가져오려면 방화벽에서 포트 15017을 열어야 제대로 작동합니다. 자세한 내용은 비공개 클러스터에서 포트 열기를 참조하세요.

  • 조직에서 서비스 경계를 만든 경우 경계에 Mesh CA 서비스를 추가해야 할 수도 있습니다. 자세한 내용은 서비스 경계에 Mesh CA 추가를 참조하세요.

  • Google Cloud 프로젝트에는 하나의 메시만 연결할 수 있습니다.

인증 기관 선택

신규 설치 및 마이그레이션의 경우 Anthos Service Mesh 인증 기관(Mesh CA) 또는 Citadel(현재 istiod에 통합됨)을 상호 TLS(mTLS) 인증서를 발급하는 인증 기관(CA)으로 사용할 수 있습니다.

일반적으로 다음과 같은 이유로 Mesh CA를 사용하는 것이 좋습니다.

  • Mesh CA는 Google Cloud에서 동적으로 확장되는 워크로드에 최적화된 안정성과 확장성이 뛰어난 서비스입니다.
  • Google은 Mesh CA를 사용하여 CA 백엔드의 보안과 가용성을 관리합니다.
  • Mesh CA를 사용하면 여러 클러스터에서 신뢰할 수 있는 단일 루트를 사용할 수 있습니다.

하지만 다음과 같은 경우에는 Citadel을 사용하는 것이 좋을 수도 있습니다.

  • 커스텀 CA가 있는 경우
  • Istio에서 마이그레이션하는 경우

    Citadel을 선택하면 마이그레이션 중에 mTLS 트래픽이 중단되지 않으므로 다운타임이 거의 발생하지 않습니다. Mesh CA를 선택하는 경우 신뢰할 수 있는 루트가 Citadel에서 Mesh CA로 변경되므로 마이그레이션을 위한 다운타임을 예약해야 합니다. Mesh CA 신뢰할 수 있는 루트로 마이그레이션을 완료하려면 모든 네임스페이스의 모든 pod를 다시 시작해야 합니다. 이 프로세스 중에는 이전 pod가 새 pod와 mTLS 연결을 설정할 수 없습니다.

Mesh CA의 인증서에는 애플리케이션 서비스에 대한 다음 데이터가 포함됩니다.

  • Google Cloud 프로젝트 ID
  • GKE 네임스페이스
  • GKE 서비스 계정 이름

클러스터 등록

현재는 필요하지 않지만 프로젝트의 Environ(허브라고도 함)에 클러스터를 등록하는 것이 좋습니다. Environ을 사용하면 멀티 클러스터 관리가 더 쉽도록 클러스터를 구성할 수 있습니다. Environ에 클러스터를 등록하면 서비스 및 기타 인프라를 필요에 따라 그룹화하여 일관된 정책을 적용할 수 있습니다. 클러스터가 서로 다른 프로젝트에 있는 경우 클러스터가 생성된 프로젝트가 아닌 Environ 호스트 프로젝트에 클러스터를 등록해야 합니다. 클러스터 등록 방법에 대한 자세한 내용은 Environ에 클러스터 등록을 참조하세요.

Environ 호스트 프로젝트의 개념은 클러스터를 설정하여 Anthos Service Mesh에 필요한 옵션을 사용 설정할 때 중요합니다. 클러스터의 서비스 메시는 프로젝트 번호를 기반으로 하는 값으로 식별됩니다. 다른 프로젝트에 있는 클러스터를 설정할 때는 Environ 호스트 프로젝트에 프로젝트 번호를 사용해야 합니다.