종속 도구 설치 및 클러스터 확인
이 페이지에서는 Cloud Service Mesh를 설치할 수 있도록 환경과 클러스터를 준비하는 방법을 보여줍니다.
필수 도구 설치
Cloud Shell 또는 Linux를 실행하는 로컬 머신에서 asmcli
를 실행할 수 있습니다. Cloud Shell은 모든 필수 도구를 사전 설치합니다.
asmcli
를 로컬에서 실행하는 경우 다음 도구가 설치되어 있는지 확인합니다.
- Google Cloud CLI
- 표준 명령줄 도구:
awk
,curl
,grep
,sed
,tr
git
kubectl
jq
- (연결 테스트를 위한 선택사항) netcat(
nc
)
gcloud 구성
Cloud Shell을 사용하는 경우에도 다음 단계를 수행합니다.
Google Cloud CLI로 인증합니다.
gcloud auth login --project PROJECT_ID
구성요소를 업데이트합니다.
gcloud components update
GKE 클러스터에 Cloud Service Mesh를 설치하는 경우
kubectl
에서 클러스터를 가리키도록 구성합니다.gcloud container clusters get-credentials CLUSTER_NAME \ --location CLUSTER_LOCATION \ --project PROJECT_ID
asmcli 다운로드
이 섹션에서는 asmcli
를 다운로드하는 방법을 설명합니다.
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
스크립트를 실행 가능하게 만듭니다.
chmod +x asmcli
클러스터에 관리자 권한 부여
컨텍스트를 사용자 클러스터로 설정했는지 확인합니다.
kubectl config use-context CONTEXT
클러스터 관리자 권한을 사용자 계정(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
은 다음을 확인합니다.
환경에 필요한 도구가 있습니다.
클러스터가 최소 요구사항을 충족하는지 확인합니다.
지정된 프로젝트에 대해 필요한 권한이 있는지 확인합니다.
프로젝트에 필요한 모든 Google API가 사용 설정되어 있는지 확인합니다.
기본적으로 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
:asmcli
가asm
패키지를 다운로드하고 설치 파일을 추출하며,istioctl
, 샘플, 매니페스트가 포함되는 디렉터리를 지정하려면 이 옵션을 포함합니다. 그렇지 않으면asmcli
가 파일을tmp
디렉터리에 다운로드합니다. 상대 경로 또는 전체 경로를 지정할 수 있습니다. 여기서 환경 변수$PWD
는 작동하지 않습니다.
Google Cloud 외부
다음 명령어를 사용하여 Google Distributed Cloud, Google Distributed Cloud, AWS용 GKE, Amazon EKS, Microsoft AKS 플랫폼에서 asmcli validate
를 실행합니다.
현재 컨텍스트를 사용자 클러스터로 전환합니다.
kubectl config use-context CLUSTER_NAME
다음 명령어를 실행하여 구성을 검증하고 설치 파일 및
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
:asmcli
가asm
패키지를 다운로드하고 설치 파일을 추출하며,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와 호환되는지 확인해야 합니다.
--output_dir
에서 지정한 디렉터리로 변경합니다.다음 명령어를 실행하여 Kubernetes 클러스터에서 설치 및 업그레이드 요구사항을 검사합니다. 새로운 Cloud Service Mesh 버전과 함께 배포된
istioctl
버전을 사용해야 합니다.istioctl experimental precheck