종속 도구 설치 및 클러스터 확인

이 페이지에서는 Cloud Service Mesh를 설치할 수 있도록 환경과 클러스터를 준비하는 방법을 보여줍니다.

필수 도구 설치

Cloud Shell 또는 Linux를 실행하는 로컬 머신에서 asmcli를 실행할 수 있습니다. Cloud Shell은 모든 필수 도구를 사전 설치합니다.

asmcli를 로컬에서 실행하는 경우 다음 도구가 설치되어 있는지 확인합니다.

gcloud 구성

Cloud Shell을 사용하는 경우에도 다음 단계를 수행합니다.

  1. Google Cloud CLI로 인증합니다.

    gcloud auth login --project PROJECT_ID
    
  2. 구성요소를 업데이트합니다.

    gcloud components update
    
  3. GKE 클러스터에 Cloud Service Mesh를 설치하는 경우 kubectl에서 클러스터를 가리키도록 구성합니다.

    gcloud container clusters get-credentials CLUSTER_NAME \
         --location CLUSTER_LOCATION \
         --project PROJECT_ID
    

asmcli 다운로드

이 섹션에서는 asmcli를 다운로드하는 방법을 설명합니다.

  1. Cloud Service Mesh 1.19.10 를 설치하는 버전을 현재 작업 디렉터리에 다운로드합니다.

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.19 > asmcli
    

    예상 출력:

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
    100  167k  100  167k    0     0   701k      0 --:--:-- --:--:-- --:--:--  701k
    
  2. 스크립트를 실행 가능하게 만듭니다.

    chmod +x asmcli
    

클러스터에 관리자 권한 부여

  1. 컨텍스트를 사용자 클러스터로 설정했는지 확인합니다.

    kubectl config use-context CONTEXT
  2. 클러스터 관리자 권한을 사용자 계정(Google Cloud 로그인 이메일 주소)에 부여합니다. Cloud Service Mesh에 필요한 역할 기반 액세스 제어(RBAC) 규칙을 만들려면 다음 권한이 필요합니다.

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user=USER_ACCOUNT

프로젝트 및 클러스터 검증

asmcli validate를 실행하여 프로젝트와 클러스터가 Cloud Service Mesh를 설치하는 데 필요한 대로 설정되었는지 확인할 수 있습니다. 이 옵션을 사용하면 asmcli에서 프로젝트나 클러스터를 변경하지 않으며 Cloud Service Mesh를 설치하지 않습니다.

asmcli은 다음을 확인합니다.

기본적으로 asmcli는 설치 파일을 다운로드 및 추출하고 GitHub의 asm 구성 패키지를 임시 디렉터리로 다운로드합니다. 종료하기 전에 asmcli는 임시 디렉터리 이름을 제공하는 메시지를 출력합니다. --output_dir DIR_PATH 옵션을 사용하여 다운로드 디렉터리를 지정하는 것이 좋습니다. --output_dir 옵션을 사용하면 istioctl 명령줄 도구를 편리하게 사용할 수 있습니다. (구성 문제 해결 또는 비공개 GKE 클러스터에서 멀티 클러스터 메시 설정하려면 istioctl가 필요할 수 있습니다). 또한 asmcli를 사용하여 선택적인 기능을 사용 설정하기 위한 구성 파일이 asm/istio/options 디렉터리에 포함되어 있습니다.

다음 명령어를 실행하여 구성을 검증하고 설치 파일 및 asm 패키지를 OUTPUT_DIR 디렉터리에 다운로드합니다.

GKE

./asmcli validate \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH
  • --project_id, --cluster_name, --cluster_location: 클러스터가 있는 프로젝트 ID, 클러스터 이름, 클러스터 영역 또는 리전을 지정합니다.

  • --fleet_id: Fleet 호스트 프로젝트의 프로젝트 ID입니다. asmcli validate는 클러스터가 지정된 Fleet에 등록되었는지 확인합니다.

  • --output_dir: asmcliasm 패키지를 다운로드하고 설치 파일을 추출하며, istioctl, 샘플, 매니페스트가 포함되는 디렉터리를 지정하려면 이 옵션을 포함합니다. 그렇지 않으면 asmcli가 파일을 tmp 디렉터리에 다운로드합니다. 상대 경로 또는 전체 경로를 지정할 수 있습니다. 여기서 환경 변수 $PWD는 작동하지 않습니다.

Google Cloud 외부

다음 명령어를 사용하여 Google Distributed Cloud, Google Distributed Cloud, AWS용 GKE, Amazon EKS, Microsoft AKS 플랫폼에서 asmcli validate를 실행합니다.

  1. 현재 컨텍스트를 사용자 클러스터로 전환합니다.

    kubectl config use-context CLUSTER_NAME
    
  2. 다음 명령어를 실행하여 구성을 검증하고 설치 파일 및 asm 패키지를 OUTPUT_DIR 디렉터리에 다운로드합니다.

    ./asmcli validate \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --platform multicloud
    
    • --kubeconfig: kubeconfig의 경로입니다. 상대 경로나 전체 경로를 지정할 수 있습니다. 여기서 환경 변수 $PWD는 작동하지 않습니다.

    • --fleet_id: Fleet 호스트 프로젝트의 프로젝트 ID입니다. asmcli validate는 클러스터가 지정된 Fleet에 등록되었는지 확인합니다.

    • --output_dir: asmcliasm 패키지를 다운로드하고 설치 파일을 추출하며, istioctl, 샘플, 매니페스트가 포함되는 디렉터리를 지정하려면 이 옵션을 포함합니다. 그렇지 않으면 asmcli가 파일을 tmp 디렉터리에 다운로드합니다. 상대 경로 또는 전체 경로를 지정할 수 있습니다. 여기서 환경 변수 $PWD는 작동하지 않습니다.

    • --platform multicloud: 플랫폼이 온프레미스 또는 멀티 클라우드와 같이 Google Cloud 이외의 플랫폼임을 지정합니다.

성공하면 asmcli가 다음을 출력됩니다.

asmcli: Setting up necessary files...
asmcli: Using asm_kubeconfig as the kubeconfig...
asmcli: Checking installation tool dependencies...
asmcli: Fetching/writing GCP credentials to kubeconfig file...
asmcli: Verifying connectivity (10s)...
asmcli: kubeconfig set to asm_kubeconfig
asmcli: using context gke_example-project-12345_us-central1_cluster-2
asmcli: Getting account information...
asmcli: Downloading ASM..
asmcli: Downloading ASM kpt package...
fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm"
asmcli: Checking required APIs...
asmcli: Checking for project example-project-12345...
asmcli: Reading labels for us-central1/cluster-2...
asmcli: Checking for istio-system namespace...
asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2...
asmcli: Checking Istio installations...
asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized.
asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized
asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components
asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh
asmcli: [WARNING]: will not function correctly.
asmcli: Successfully validated all requirements to install ASM.

테스트 중 하나가 검증에 실패하면 asmcli가 오류 메시지를 출력합니다. 예를 들어 프로젝트에 모든 필요한 Google API가 사용 설정되지 않았으면 다음 오류가 표시됩니다.

ERROR: One or more APIs are not enabled. Please enable them and retry, or run
`asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them
on your behalf.

사용 설정 플래그asmcli를 실행해야 한다는 오류 메시지가 표시되는 경우 다음 중 필요한 조치를 취할 수 있습니다.

  • 실제 설치를 수행하기 위해 asmcli를 실행할 때 오류 메시지의 특정 플래그 또는 --enable_all 플래그를 포함합니다.

  • 원하는 경우 프로젝트 및 GKE 클러스터 직접 설정에 설명된 대로 asmcli를 실행하기 전에 프로젝트 및 클러스터를 직접 업데이트할 수 있습니다.

asmcli validate는 프로젝트 및 클러스터의 설치 준비 상태만 확인하기 때문에 사용 설정 플래그를 허용하지 않습니다.

클러스터 설치 및 업그레이드 요구사항 검사

업그레이드하기 전에 구성이 새 버전의 Cloud Service Mesh와 호환되는지 확인해야 합니다.

  1. --output_dir에서 지정한 디렉터리로 변경합니다.

  2. 다음 명령어를 실행하여 Kubernetes 클러스터에서 설치 및 업그레이드 요구사항을 검사합니다. 새로운 Cloud Service Mesh 버전과 함께 배포된 istioctl 버전을 사용해야 합니다.

    istioctl experimental precheck
    

다음 단계