이 가이드에서는 동일한 프로젝트에 있는 GKE 클러스터를 하나 이상 포함하는 메시에 대해 Anthos Service Mesh 1.11.8 버전을 설치, 마이그레이션 또는 업그레이드하는 방법을 설명합니다. Google 제공 스크립트 install_asm
을 사용하여 프로젝트 및 클러스터를 구성한 후 istioctl install
을 사용해 Anthos Service Mesh를 설치합니다.
이 가이드와 다음 온보딩 사용 사례를 위한 스크립트를 사용할 수 있습니다.
Anthos Service Mesh 1.11.8 신규 설치
모든 버전 및 패치 출시 버전 1.7 이상에서 Anthos Service Mesh 1.11.8 버전으로 업그레이드합니다. 이전 버전에서의 업그레이드는 지원되지 않습니다.
오픈소스 Istio 에서 Anthos Service Mesh로 마이그레이션. Istio 1.6 이하를 사용하는 경우 Anthos Service Mesh로 마이그레이션하기 전에 먼저 업그레이드해야 합니다. Istio 1.7 이상이 있는 경우 Istio 1.7 이상에서 Anthos Service Mesh 및 Mesh CA로의 마이그레이션을 사용할 수 있습니다. 업그레이드해야 하는 경우 해당 Istio 버전의 Istio 업그레이드 페이지로 이동합니다. 한 번에 둘 이상의 부 버전(예: 1.6.x에서 1.8.x)으로 Istio를 업그레이드하는 것은 공식적으로 테스트되거나 권장되지 않습니다. Istio에서 마이그레이션 준비를 검토하여 마이그레이션을 계획하세요.
기본 요건
이 가이드에서는 다음 항목이 있다고 가정합니다.
Anthos 및 Anthos Service Mesh 차이점
Anthos Service Mesh는 GKE Enterprise에서 또는 독립형 서비스로 사용 가능합니다. Google API는 청구 방식을 결정하는 데 사용됩니다. Anthos Service Mesh를 독립형 서비스로 사용하려면 프로젝트에 GKE Enterprise API를 사용 설정하지 마세요. 이 스크립트는 다른 모든 필수 Google API를 사용 설정합니다. Anthos Service Mesh 가격에 대한 자세한 내용은 가격 책정을 참조하세요.
GKE Enterprise 구독자는 GKE Enterprise API를 사용 설정해야 합니다.
GKE Enterprise 구독자가 아니어도 Anthos Service Mesh를 설치할 수 있지만 GKE Enterprise 구독자만 Google Cloud 콘솔의 특정 UI 요소와 기능을 사용할 수 있습니다. 구독자와 비구독자가 사용할 수 있는 항목에 대한 자세한 내용은 GKE Enterprise 및 Anthos Service Mesh UI 차이점을 참조하세요.
GKE Enterprise API를 사용 설정했지만 Anthos Service Mesh를 독립형 서비스로 사용하려면 GKE Enterprise API를 중지합니다.
요구사항
GKE 클러스터는 다음 요구사항을 충족해야 합니다.
Autopilot 클러스터에
istio-sidecar-injector
에 대해MutatingWebhookConfiguration
을 허용하지 않는 웹훅 제한이 포함되기 때문에 GKE 클러스터가 Standard여야 합니다.vCPU가 4개 이상 있는 머신 유형(예:
e2-standard-4
). 클러스터의 머신 유형에 4개 미만의 vCPU가 있으면 여러 머신 유형에 워크로드 마이그레이션에 설명된 대로 머신 유형을 변경합니다.최소 노드 수는 머신 유형에 따라 다릅니다. Anthos Service Mesh에는 최소 8개의 vCPU가 필요합니다. 머신 유형에 vCPU가 4개 있는 경우 클러스터에는 노드가 2개 이상 있어야 합니다. 머신 유형에 vCPU가 8개 있는 경우 클러스터에는 노드가 1개만 필요합니다. 노드를 추가해야 하는 경우 클러스터 크기 조절을 참조하세요.
기본적으로 스크립트는 클러스터에서 워크로드 아이덴티티를 사용 설정합니다. 워크로드 아이덴티티는 Google API 호출에 권장되는 방법입니다. 워크로드 아이덴티티를 사용 설정하면 워크로드 아이덴티티 제한사항의 설명대로 워크로드에서 Google API로 호출이 보호되는 방식이 변경됩니다.
새로 설치하고 Anthos Service Mesh 인증 기관(Mesh CA)을 사용하려는 경우 GKE 워크로드 아이덴티티 대신 Fleet 워크로드 아이덴티티 풀을 사용할 수 있습니다. Fleet 워크로드 아이덴티티 풀로 Mesh CA를 사용(미리보기)하려면 스크립트를 실행하기 전에 클러스터 등록의 단계를 따르거나 클러스터가 있는 프로젝트에 클러스터를 등록하는 스크립트를 실행할 때
--enable_registration
플래그를 포함해야 합니다. 스크립트 실행 예시는 Fleet 워크로드 아이덴티티 풀로 Mesh CA 사용 설정을 참조하세요.선택사항이지만 출시 채널에 클러스터를 등록하는 것이 좋습니다. 다른 채널은 Anthos Service Mesh 1.11.8에서 지원되지 않는 GKE 버전을 기반으로 할 수 있으므로 일반 출시 채널에 등록하는 것이 좋습니다. 자세한 내용은 지원되는 플랫폼을 참조하세요. 정적 GKE 버전이 있는 경우 출시 채널에 기존 클러스터 등록의 안내를 따릅니다.
서비스 메시에 포함하려면 서비스 포트의 이름이 지정되어야 하며 이름은
name: protocol[-suffix]
구문에서 포트 프로토콜을 포함해야 합니다. 여기서 대괄호는 대시로 시작해야 하는 선택적 서픽스를 나타냅니다. 자세한 내용은 서비스 포트 이름 지정을 참조하세요.비공개 클러스터에 Anthos Service Mesh를 설치하는 경우 자동 사이드카 삽입에 사용되는 웹훅 및 구성 검증을 작동하기 위해 방화벽에서 포트 15017을 열어야 합니다. 자세한 내용은 비공개 클러스터에서 포트 열기를 참조하세요.
조직에서 서비스 경계를 만든 경우 경계에 Mesh CA 서비스를 추가해야 할 수도 있습니다. 자세한 내용은 서비스 경계에 Mesh CA 추가를 참조하세요.
마이그레이션의 경우 일반적으로
istiod
가istio-system
네임스페이스에 설치되어 있어야 합니다.Google Cloud 프로젝트에는 하나의 메시만 연결할 수 있습니다.
istio-proxy
사이드카 컨테이너의 기본 리소스 한도를 변경하려면 메모리 부족(OOM) 이벤트를 방지하기 위해 새 값이 기본값보다 커야 합니다.Windows Server 워크로드의 경우 Istio가 지원되지 않습니다. 클러스터에 Linux 및 Windows Server 노드 풀이 둘 다 있는 경우에도 Anthos Service Mesh를 설치하고 Linux 워크로드에서 사용할 수 있습니다.
제어 영역 맞춤설정
Anthos Service Mesh에서 지원되는 기능은 플랫폼마다 다릅니다. 지원되는 기능을 검토하여 Google Cloud 기반 GKE에서 지원되는 기능에 대해 알아보는 것이 좋습니다. 일부 기능은 기본적으로 사용 설정되며, 다른 기능은 IstioOperator
오버레이 파일을 만들어서 선택적으로 사용 설정할 수 있습니다.
install_asm
스크립트를 실행할 때 오버레이 파일을 사용하여 --custom_overlay
옵션을 지정할 수 있습니다.
인증 기관 선택
Istio의 신규 설치 및 마이그레이션의 경우 Anthos Service Mesh 인증 기관(Mesh CA) 또는 Istio의 Citadel을 상호 TLS(mTLS) 인증서 발급을 위한 인증 기관(CA)으로 사용할 수 있습니다.
HashiCorp Vault 등의 커스텀 CA가 필요하지 않으면 다음과 같은 이유로 Mesh CA를 사용하는 것이 좋습니다.
- Mesh CA는 Google Cloud에서 동적으로 확장되는 워크로드에 최적화된 안정성과 확장성이 뛰어난 서비스입니다.
- Google은 Mesh CA를 사용하여 CA 백엔드의 보안과 가용성을 관리합니다.
- Mesh CA를 사용하면 여러 클러스터에서 신뢰할 수 있는 단일 루트를 사용할 수 있습니다.
Anthos Service Mesh를 새로 설치하는 경우 기본적으로 스크립트에서 Mesh CA를 사용 설정합니다.
Istio에서 마이그레이션하는 경우 Mesh CA로 마이그레이션하거나 Istio CA를 계속 사용할 수 있습니다. Istio CA에서 Mesh CA로 마이그레이션하려면 신뢰할 수 있는 루트를 마이그레이션해야 합니다. Mesh CA로 마이그레이션할 때 다음 옵션을 사용할 수 있습니다.
마이그레이션을 위한 다운타임을 예약합니다. 운영 측면에서 가장 쉬운 옵션이지만, 마이그레이션 중에 mTLS 트래픽이 중단되므로 다운타임을 예약해야 합니다. 이 스크립트 사용 예시는 다운타임을 통해 Mesh CA로 마이그레이션을 참조하세요.
새 신뢰할 수 있는 루트를 배포한 다음 Mesh CA로 마이그레이션합니다. 이 접근 방식을 사용하면 mTLS 트래픽이 중단되지 않으므로 마이그레이션 프로세스를 예약할 필요가 없지만 마이그레이션 프로세스에서 밟아야 하는 단계가 늘어납니다. 자세한 내용은 Mesh CA로 마이그레이션을 참조하세요.
Anthos Service Mesh로 마이그레이션할 때 Istio CA를 계속 사용하는 경우 루트 CA가 변경되지 않으므로 mTLS 트래픽이 중단되지 않습니다. 이 마이그레이션 경로는 기존 워크로드에 지장을 주지 않지만 클러스터 내 제어 영역만 사용할 수 있습니다. Google 관리형 제어 영역의 경우 Mesh CA가 필요합니다.
Mesh CA의 인증서에는 애플리케이션 서비스에 대한 다음 데이터가 포함됩니다.
- Google Cloud 프로젝트 ID
- GKE 네임스페이스
- GKE 서비스 계정 이름
클러스터 등록
Google Cloud 콘솔에서 통합 사용자 인터페이스에 액세스하려면 Fleet으로 클러스터를 등록해야 합니다. Fleet에서는 Google Cloud 외부의 클러스터를 포함하여 클러스터와 워크로드를 통합된 방식으로 보고 관리할 수 있습니다.
클러스터 등록의 단계를 따르거나 클러스터가 있는 프로젝트에 클러스터를 등록하는 스크립트를 실행할 때 --enable_registration
플래그를 포함해야 합니다.
필수 도구 설치
이 스크립트는 Cloud Shell 또는 Linux를 실행하는 로컬 머신에서 실행할 수 있습니다. Cloud Shell은 모든 필수 도구를 사전 설치합니다.
Cloud Shell
Cloud Shell은 Debian 기반 Linux 운영체제를 실행하는 g1-small Compute Engine 가상 머신(VM)을 프로비저닝합니다. Cloud Shell 사용의 장점은 다음과 같습니다.
Cloud Shell에는
gcloud
,kubectl
,kpt
및 필요한 기타 명령줄 도구가 포함되어 있습니다.Cloud Shell $HOME 디렉터리에는 5GB의 영구 저장공간이 있습니다.
다음과 같은 텍스트 편집기를 선택할 수 있습니다.
Cloud Shell 창 상단에 있는 '코드 편집기
'를 클릭하여 액세스할 수 있는Cloud Shell의 명령줄에서 액세스할 수 있는 Eacs, Vim 또는 Nano
Cloud Shell을 사용하려면 다음 안내를 따르세요.
- Google Cloud 콘솔로 이동합니다.
- Google Cloud 프로젝트를 선택합니다.
Google Cloud 콘솔 창 상단에 있는 Cloud Shell 활성화 버튼을 클릭합니다.
Google Cloud 콘솔 하단의 새 프레임에서 Cloud Shell 세션이 열리고 명령줄 프롬프트가 표시됩니다.
구성요소를 업데이트합니다.
gcloud components update
이 명령어는 다음과 유사한 출력으로 응답합니다.
ERROR: (gcloud.components.update) You cannot perform this action because the gcloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation: sudo apt-get update && sudo apt-get --only-upgrade install ...
long 명령어를 복사하고 붙여넣어 구성요소를 업데이트합니다.
로컬 Linux 컴퓨터
다음 도구가 설치되었는지 확인합니다.
- Google Cloud CLI
- 표준 명령줄 도구:
awk
,curl
,grep
,sed
,tr
- git
- kpt
- kubectl
- jq
gcloud CLI로 인증합니다.
gcloud auth login
구성요소를 업데이트합니다.
gcloud components update
kpt
가 찾을 수 있도록git
가 경로에 있는지 확인합니다.
스크립트 다운로드
이 섹션에서는 스크립트를 다운로드하고, 필수 및 선택 매개변수를 설정하고, 스크립트를 실행하는 방법을 설명합니다. 스크립트의 기능에 대한 자세한 내용은 스크립트 이해를 참조하세요.
Anthos Service Mesh 1.11.8를 현재 작업 디렉터리에 설치하는 스크립트 버전을 다운로드합니다.
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.11 > install_asm
스크립트를 실행 가능하게 만듭니다.
chmod +x install_asm