이 가이드에서는 다른 Google Cloud 프로젝트에 있는 여러 GKE 클러스터를 포함하는 메시에 대해 Anthos Service Mesh를 설치하거나 오픈소스 Istio에서 Anthos Service Mesh로 마이그레이션하는 방법을 설명합니다. 동일한 Google 클라우드 프로젝트에 있는 하나 이상의 GKE 클러스터를 설치, 마이그레이션, 업그레이드하는 경우 GKE용 설치, 마이그레이션, 업그레이드를 참조하세요.
이 가이드는 다음과 같은 사용 사례에 사용할 수 있습니다.
Anthos Service Mesh 1.7.8 신규 설치
오픈소스 Istio 1.6 또는 1.7에서 Anthos Service Mesh 1.7.8 버전으로 마이그레이션. 이전 버전의 Istio를 사용하는 경우에는 업그레이드를 먼저 진행한 후에 Anthos Service Mesh로 마이그레이션해야 합니다.
여러 Google Cloud 프로젝트에서 클러스터를 구성하려면 asm-gcp-multiproject
(베타) 프로필이 필요합니다. 이 프로필을 사용하면 다음 사항이 적용됩니다.
현재 Google Cloud Console의 Anthos Service Mesh 대시보드를 사용할 수 없습니다. 그러나 각 프로젝트에 대해 Cloud Logging의 로그와 Cloud Monitoring의 측정항목은 계속 볼 수 있습니다.
asm-gcp-multiproject
구성 프로필의 지원되는 기능 페이지에 나열된 다른 지원되는 기본 기능이 사용 설정됩니다.
시작하기 전에
이 가이드에서는 다음 작업을 이미 완료했다고 가정합니다.
Istio에서 마이그레이션하는 경우 Istio에서 마이그레이션 준비를 참조하세요.
Anthos 및 Anthos Service Mesh 차이점
GKE Enterprise 구독자는 GKE Enterprise API를 사용 설정해야 합니다.
GKE Enterprise 구독자가 아니어도 Anthos Service Mesh를 설치할 수 있지만 GKE Enterprise 구독자만 Google Cloud 콘솔의 특정 UI 요소와 기능을 사용할 수 있습니다. 구독자와 비구독자가 사용할 수 있는 항목에 대한 자세한 내용은 GKE Enterprise 및 Anthos Service Mesh UI 차이점을 참조하세요. 비구독자의 Anthos Service Mesh 가격 책정에 대한 자세한 내용은 가격 책정을 참조하세요.
요구사항
클러스터가 서로 다른 프로젝트에 있으므로 이들은 공유 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.7.8에서 지원되지 않는 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 서비스 계정 이름
멀티 클러스터 지원
현재는 필요하지 않지만 클러스터를 프로젝트의 Fleet(이전에는 Environ이라 함)에 등록하는 것이 좋습니다. Fleet을 사용하면 클러스터를 구성하여 멀티 클러스터를 더욱 간편하게 관리할 수 있습니다. 클러스터를 Fleet에 등록하면 서비스와 기타 인프라를 필요에 따라 그룹화하여 일관된 정책을 적용할 수 있습니다. 클러스터가 서로 다른 프로젝트에 있는 경우 클러스터가 생성된 프로젝트가 아닌 Fleet 호스트 프로젝트를 사용하여 클러스터를 등록해야 합니다. 자세한 내용은 Fleet에 클러스터 등록을 참조하세요.
Fleet 호스트 프로젝트의 개념은 클러스터를 설정하여 Anthos Service Mesh에 필요한 옵션을 사용 설정할 때 중요합니다. 클러스터의 서비스 메시는 프로젝트 번호를 기반으로 하는 값으로 식별됩니다. 다른 프로젝트에서 클러스터를 설정할 경우 Fleet 호스트 프로젝트에 프로젝트 번호를 사용해야 합니다.