GKE에 단일 프로젝트 설치

이 가이드에서는 동일한 프로젝트에 있는 GKE 클러스터를 하나 이상 포함하는 메시에 대해 Anthos Service Mesh 1.9.8 버전을 설치, 마이그레이션 또는 업그레이드하는 방법을 설명합니다. Google 제공 스크립트 install_asm을 사용하여 프로젝트 및 클러스터를 구성한 후 istioctl install을 사용해 Anthos Service Mesh를 설치합니다.

이 가이드와 다음 온보딩 사용 사례를 위한 스크립트를 사용할 수 있습니다.

  • Anthos Service Mesh 1.9.8 신규 설치

  • 1.8 or a 1.9 patch release에서 업그레이드. 이전 버전에서의 업그레이드는 지원되지 않습니다.

  • 오픈소스 Istio 1.8 or 1.9에서 Anthos Service Mesh로 마이그레이션. 이전 버전의 Istio를 사용하는 경우에는 업그레이드를 먼저 진행한 후에 Anthos Service Mesh로 마이그레이션해야 합니다. 업그레이드해야 하는 경우 해당 Istio 버전Istio 업그레이드 페이지로 이동합니다. 둘 이상의 부 버전을 건너뛰어 Istio를 업그레이드하는 것 (예: 1.6.x에서 1.8.x)은 공식으로 테스트되거나 권장되지 않습니다. 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를 사용 설정해야 합니다.

    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.9.8에서 지원되지 않는 GKE 버전을 기반으로 하는 경우가 있으므로 일반 출시 채널에 등록하는 것이 좋습니다. 자세한 내용은 지원되는 환경을 참조하세요. 정적 GKE 버전이 있는 경우 출시 채널에 기존 클러스터 등록의 안내를 따릅니다.

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

  • 비공개 클러스터에 Anthos Service Mesh를 설치하는 경우 자동 사이드카 삽입에 사용되는 웹훅 및 구성 검증을 작동하기 위해 방화벽에서 포트 15017을 열어야 합니다. 자세한 내용은 비공개 클러스터에서 포트 열기를 참조하세요.

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

  • 마이그레이션의 경우 일반적으로 istiodistio-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 옵션을 지정할 수 있습니다.

인증 기관 선택

신규 설치 및 마이그레이션의 경우 Anthos Service Mesh 인증 기관(Mesh CA) 또는 Istio CA(이전의 Citadel)를 상호 TLS(mTLS) 인증서 발급을 위한 인증 기관(CA)으로 사용할 수 있습니다.

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

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

하지만 다음과 같이 Istio CA를 사용하는 것이 좋을 때도 있습니다.

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

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

참고: Anthos Service Mesh를 새로 설치하는 경우 기본적으로 스크립트에서 Mesh CA를 사용 설정합니다.

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

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

클러스터 등록

Google Cloud 콘솔에서 통합 사용자 인터페이스에 액세스하려면 Fleet으로 클러스터를 등록해야 합니다. Fleet에서는 Google Cloud 외부의 클러스터를 포함하여 클러스터와 워크로드를 통합된 방식으로 보고 관리할 수 있습니다.

클러스터 등록의 단계를 따르거나 클러스터가 있는 프로젝트에 클러스터를 등록하는 스크립트를 실행할 때 --enable_registration 플래그를 포함해야 합니다.

필수 도구 설치

이 스크립트는 Cloud Shell 또는 Linux를 실행하는 로컬 머신에서 실행할 수 있습니다. Cloud Shell은 모든 필수 도구를 사전 설치합니다. macOS는 이전 bash 버전과 함께 제공되기 때문에 지원되지 않습니다.

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을 사용하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔로 이동합니다.
  2. Google Cloud 프로젝트를 선택합니다.
  3. Google Cloud 콘솔 창 상단에 있는 Cloud Shell 활성화 버튼을 클릭합니다.

    Google Cloud Platform Console

    Google Cloud 콘솔 하단의 새 프레임에서 Cloud Shell 세션이 열리고 명령줄 프롬프트가 표시됩니다.

    Cloud Shell 세션

  4. 구성요소를 업데이트합니다.

    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 ...
  5. long 명령어를 복사하고 붙여넣어 구성요소를 업데이트합니다.

로컬 Linux 컴퓨터

  1. 다음 도구가 설치되었는지 확인합니다.

  2. gcloud CLI로 인증합니다.

    gcloud auth login
    
  3. 구성요소를 업데이트합니다.

    gcloud components update
    
  4. kpt가 찾을 수 있도록 git가 경로에 있는지 확인합니다.

스크립트 다운로드

이 섹션에서는 스크립트를 다운로드하고, 필수 및 선택 매개변수를 설정하고, 스크립트를 실행하는 방법을 설명합니다. 스크립트의 기능에 대한 자세한 내용은 스크립트 이해를 참조하세요.

  1. Anthos Service Mesh 1.9.8를 현재 작업 디렉터리에 설치하는 스크립트 버전을 다운로드합니다.

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
    
  2. 파일의 SHA-256을 현재 작업 디렉터리에 다운로드합니다.

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
    
  3. 같은 디렉터리의 두 파일을 모두 사용하여 다운로드를 확인합니다.

    sha256sum -c --ignore-missing install_asm.sha256
    

    확인이 성공하면 명령어가 install_asm: OK를 출력합니다.

    호환성을 위해 install_asm.sha256 파일에는 모든 버전의 스크립트 이름을 install_asm으로 바꿀 수 있게 해주는 체크섬이 두 배로 포함됩니다. --ignore-missing이 없다는 오류가 발생하면 --ignore-missing 플래그를 사용하지 않고 이전 명령어를 다시 실행합니다.

  4. 스크립트를 실행 가능하게 만듭니다.

    chmod +x install_asm
    

다음 단계