asmcli 참조
개요
asmcli
는 Cloud Service Mesh 설치 또는 업그레이드에 사용할 수 있는 Google 제공 도구입니다. 사용자가 허용하면 asmcli
가 프로젝트 및 클러스터를 다음과 같이 구성합니다.
- Google Cloud 프로젝트에 필요한 Identity and Access Management(IAM) 권한을 부여합니다.
- Google Cloud 프로젝트에서 필요한 Google API를 사용 설정합니다.
- 메시를 식별하는 라벨을 클러스터에 설정합니다.
- 사이드카 프록시와 같은 데이터 영역 구성요소가 프로젝트의 데이터 및 리소스에 안전하게 액세스할 수 있는 서비스 계정을 만듭니다.
- 아직 등록되지 않은 경우 Fleet에 클러스터를 등록합니다.
asmcli
를 실행할 때 --enable_all
플래그를 포함하여 프로젝트와 클러스터를 구성할 수 있습니다. asmcli
옵션 및 플래그에 대한 자세한 내용은 asmcli
참조를 확인하세요.
그런 후 asmcli
가 프로젝트 및 클러스터 정보를 사용하여 YAML 파일을 구성합니다.
Cloud Service Mesh 컨트롤 플레인을 설치하려면 이러한 구성 파일이 필요합니다.
Cloud Service Mesh 및 Istio를 처음 사용하는 경우에는 지원되는 플랫폼으로 건너뜁니다. 다음 섹션에서는 1.22에 대한 기존 Cloud Service Mesh 업그레이드를 도와줍니다.
asmcli
로 전환
asmcli
가 istioctl install
및 install_asm
을 대체합니다. Cloud Service Mesh 1.11에서는 기존 도구를 계속 사용할 수 있지만, 기존 도구는 지원 중단되어 Cloud Service Mesh 1.12 이상에서는 더 이상 지원되지 않습니다.
asmcli
를 사용하도록 스크립트와 도구를 업데이트하세요.
클러스터를 Fleet에 등록해야 합니다. 자세한 내용은 Fleet 요구사항을 참조하세요.
install_asm
에서 전환
install_asm
에 익숙하다면 asmcli
는 이와 비슷하지만 다음과 같은 주목할 만한 차이점이 있습니다.
새로운 설치 및 업그레이드에는
asmcli install
를 사용하세요.install_asm
에서와 같은--mode
옵션은 없습니다.asmcli install
을 실행할 때는 클러스터에 기존 제어 영역이 있는지 확인합니다. 기존 컨트롤 플레인이 없으면asmcli
가 Cloud Service Mesh를 설치합니다. 클러스터에 기존 컨트롤 플레인 (Cloud Service Mesh 컨트롤 플레인 또는 오픈소스 Istio 컨트롤 플레인)이 있는 경우:만약 기존 제어 영역의 버전 라벨이 새 제어 영역의 버전 라벨과 일치하지 않으면
asmcli
는 카나리아 업그레이드를 수행합니다.제어 영역 버전 라벨이 동일하면
asmcli
가 인플레이스 업그레이드를 수행합니다.
대부분의
asmcli
옵션 및 플래그는install_asm
과 동일하게 작동합니다.
istioctl install
에서 전환
istioctl install
에 익숙한 경우, 일반적으로 제어 영역을 구성하기 위해 -f
명령줄 인수를 통해 IstioOperator
YAML 파일을 전달할 때는 --custom_overlay
옵션을 사용해서 파일을 asmcli
로 전달할 수 있습니다. Cloud Service Mesh 문서에서는 이러한 파일을 오버레이 파일이라고 합니다.
지원되는 플랫폼
지원되는 플랫폼 목록에 있는 Cloud Service Mesh 설치는 asmcli
로 구성하거나 업그레이드할 수 있습니다.
하지만 Google Cloud 외부 플랫폼에서는 일부 기능을 사용할 수 없습니다. 자세한 내용은 클러스터 내 제어 영역 지원 기능을 참조하세요.
asmcli
참조
이 섹션에서는 asmcli
에 사용 가능한 인수에 대해 설명합니다.
옵션
클러스터 식별 다음과 같은 클러스터 식별 옵션이 있습니다.
GKE만 해당
-p|--project_id CLUSTER_PROJECT_ID
- 클러스터가 생성된 프로젝트의 프로젝트 ID입니다.
-n|--cluster_name CLUSTER_NAME
- 클러스터의 이름입니다.
-l|--cluster_location CLUSTER_LOCATION
- 클러스터가 생성된 영역(단일 영역 클러스터) 또는 리전(리전 클러스터용)입니다.
모든 플랫폼
--kubeconfig KUBECONFIG_FILE
kubeconfig 파일의 전체 경로입니다. 여기서 환경 변수 $PWD
는 작동하지 않습니다.
--ctx|--context KUBE_CONTEXT
사용할 kubeconfig 컨텍스트입니다. 지정되지 않은 경우 asmcli
에 기본 컨텍스트가 사용됩니다.
-c|--ca {mesh_ca|gcp_cas|citadel}
상호 TLS 인증서 관리를 위해 사용할 인증 기관(CA)입니다. Cloud Service Mesh 인증 기관을 사용하려면
mesh_ca
를 지정하고, Certificate Authority Service를 사용하려면gcp_cas
를 지정하고, Istio CA를 사용하려면citadel
을 지정합니다. 관리형 Cloud Service Mesh는 Istio CA를 지원하지 않습니다. 자세한 내용은 다음을 참조하세요.--channel CLOUD_SERVICE_MESH_CHANNEL
특정 Cloud Service Mesh 출시 채널로
--channel
을 사용하여 해당 출시 채널과 연결된 컨트롤 플레인 버전을 프로비저닝합니다. 예를 들면--channel rapid
,--channel regular
,--channel stable
입니다. 이 플래그는 GKE Autopilot 클러스터에서 특정 Cloud Service Mesh 기능을 구성할 때 필요합니다.
CSM 출시 노트에 언급된 대로 관리형 Cloud Service Mesh에서는 더 이상 --channel
옵션이 지원되지 않습니다.
출시 채널은 GKE 클러스터 출시 채널에 따라 결정됩니다.
자세한 내용은 관리형 Cloud Service Mesh 출시 채널을 참조하세요.
--co|--custom_overlay OVERLAY_FILE
IstioOperator
커스텀 리소스가 포함된 YAML 파일 이름(오버레이 파일)으로--custom_overly
를 사용해서 클러스터내 컨트롤 플레인을 구성합니다. 기본적으로 사용 설정되지 않는 기능을 사용 설정하려면 오버레이 파일을 지정합니다. 관리형 Cloud Service Mesh는IstioOperator
API를 지원하지 않으므로--custom_overlay
를 사용하여 관리형 컨트롤 플레인을 구성할 수 없습니다.asmcli
는 오버레이 파일을 찾을 수 있어야 하므로asmcli
와 동일한 디렉터리에 있어야 하거나 상대 경로를 지정할 수 있습니다. 여러 파일을 추가하려면--co|--custom_overlay
및 파일 이름을 지정합니다(예:--co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
).--hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS
- 연결된 Amazon EKS 클러스터를 사용하는 경우
--hub-registration-extra-flags
를 사용해서 아직 등록되지 않은 경우 fleet에 클러스터를 등록합니다. -k|--key_file FILE_PATH
- 서비스 계정의 키 파일입니다. 서비스 계정을 사용하지 않으면 이 옵션을 생략합니다.
--network_id NETWORK_ID
--network_id
를 사용하여istio-system
네임스페이스에 적용되는topology.istio.io/network
라벨을 설정합니다. GKE의 경우--network_id
는 기본적으로 클러스터의 네트워크 이름으로 지정됩니다. 다른 환경에서는default
가 사용됩니다.-o|--option OVERLAY_FILE
asmcli
가 선택적인 기능을 사용 설정하기 위해anthos-service-mesh
저장소에서 다운로드하는 오버레이 파일(.yaml
확장자 제외)의 이름입니다.--option
을 사용하려면 인터넷 연결이 필요합니다.--option
및--custom_overlay
옵션은 비슷하지만 동작이 약간 다릅니다.오버레이 파일의 설정을 변경해야 하는 경우
--custom_overlay
를 사용합니다.--option
을 사용하여 오버레이 파일 변경이 필요하지 않은 기능을 사용 설정합니다(예: 서비스의 감사 정책 구성).
여러 파일을 추가하려면
-o|--option
및 파일 이름을 지정합니다(예:-o option_file1 -o option_file2 -o option_file3
).-D|--output_dir DIR_PATH
지정하지 않으면,
asmcli
가 Cloud Service Mesh 설치에 필요한 파일 및 구성을 다운로드할 임시 디렉터리를 만듭니다.--output-dir
플래그를 지정하여 대신 사용할 디렉터리의 상대 경로를 지정합니다. 완료되면 지정된 디렉터리에asm
및istio-1.22.6-asm.2
하위 디렉터리가 포함됩니다.asm
디렉터리에는 설치 구성이 포함됩니다.istio-1.22.6-asm.2
디렉터리에는istioctl
, 샘플, 매니페스트를 비롯한 설치 파일에서 추출한 콘텐츠가 포함됩니다.--output-dir
을 지정하고 디렉터리에 이미 필요한 파일이 포함된 경우asmcli
가 이를 다운로드하는 대신 해당 파일을 사용합니다.--platform PLATFORM {gcp|multicloud}
Kubernetes 클러스터의 플랫폼 또는 제공업체입니다. 기본값은
gcp
(GKE 클러스터용)입니다. 다른 모든 플랫폼에서는multicloud
를 사용합니다.-r|--revision_name REVISION NAME
버전 라벨은 컨트롤 플레인에 설정된 키-값 쌍입니다. 버전 라벨 키는 항상
istio.io/rev
입니다. 기본적으로asmcli
는 Cloud Service Mesh 버전을 기준으로 버전 라벨 값을 설정합니다(예:asm-1226-2
). 기본값을 재정의하고 직접 지정하려면 이 옵션을 포함하세요.REVISION NAME
인수가 DNS-1035 라벨이어야 합니다. 즉, 이름이 다음과 같아야 합니다.- 63자(영문 기준) 이하여야 합니다.
- 소문자 영숫자 문자 또는 '-'만 포함해야 합니다.
- 알파벳 문자로 시작해야 합니다.
- 영숫자 문자로 끝나야 합니다.
검증에 사용되는 정규식은 '[a-z]([-a-z0-9]*[a-z0-9])?'
입니다.
-s|--service_account ACCOUNT
- Cloud Service Mesh를 설치하는 데 사용되는 서비스 계정의 이름입니다. 지정하지 않으면 현재
gcloud
구성의 활성 사용자 계정이 사용됩니다. 활성 사용자 계정을 변경해야 하는 경우 gcloud auth login을 실행합니다.
Istio CA 커스텀 인증서 옵션
--ca citadel
을 지정했고 커스텀 CA를 사용하는 경우, 다음 옵션을 포함합니다.
--ca_cert FILE_PATH
: 중간 인증서--ca_key FILE_PATH
: 중간 인증서의 키--root_cert FILE_PATH
: 루트 인증서--cert_chain FILE_PATH
: 인증서 체인
자세한 내용은 기존 CA 인증서 연결을 참조하세요.
사용 설정 플래그
--enable
로 시작하는 플래그를 사용하면 asmcli
가 필요한 Google API를 사용 설정하고, 필요한 Identity and Access Management(IAM) 권한을 설정하고, 클러스터를 업데이트할 수 있습니다. 원하는 경우 asmcli
를 실행하기 전 프로젝트 및 클러스터를 직접 업데이트할 수 있습니다. 모든 사용 설정 플래그는 asmcli validate
와 호환되지 않습니다. asmcli validate
를 실행할 때 사용 설정 플래그를 지정하면 오류와 함께 명령어가 종료됩니다.
-e|--enable_all
asmcli
가 아래 설명된 모든 개별 사용 설정 작업을 수행할 수 있습니다.--enable_cluster_roles
asmcli
를 실행하는 Google Cloud 사용자 또는 서비스 계정을 클러스터의cluster-admin
역할에 결합하도록asmcli
를 허용합니다.asmcli
에서gcloud config get core/account
명령어를 통해 사용자 계정을 결정합니다. 사용자 계정을 사용해asmcli
를 로컬에서 실행하는 경우asmcli
를 실행하기 전에gcloud auth login
명령어를 호출해야 합니다. 사용자 계정을 변경해야 하는 경우gcloud config set core/account GCP_EMAIL_ADDRESS
명령어를 실행합니다. 여기서 GCP_EMAIL_ADDRESS는 Google Cloud에 로그인할 때 사용하는 계정입니다.--enable_cluster_labels
asmcli
가 필수 클러스터 라벨을 설정하도록 허용합니다.--enable_gcp_components
asmcli
가 다음 필수 Google Cloud 관리형 서비스 및 구성요소를 사용 설정하도록 허용합니다.GKE 애플리케이션에서 Google Cloud 서비스에 안전하게 액세스하는 데 권장되는 워크로드 아이덴티티를 사용 설정합니다.
GKE에서 Cloud Monitoring 및 Cloud Logging을 사용 설정합니다.
--enable_gcp_apis
asmcli
가 모든 필수 Google API를 사용 설정하도록 허용합니다.--enable_gcp_iam_roles
asmcli
가 필수 IAM 권한을 설정하도록 허용합니다.--enable_meshconfig_init
스크립트가 사용자 대신 meshconfig 엔드포인트를 초기화하도록 허용합니다.
--enable_gcp_components
및--managed
가 묵시적으로 적용됩니다.--enable_namespace_creation
asmcli
에서 루트istio-system
네임스페이스를 만들도록 허용합니다.--enable_registration
asmcli
가 클러스터가 있는 프로젝트에 클러스터를 등록할 수 있도록 허용합니다. 이 플래그를 포함하지 않는 경우에는 클러스터 등록의 단계에 따라 클러스터를 수동으로 등록합니다. 다른 사용 설정 플래그와 달리--enable_registration
은 클러스터 등록이 필요한 옵션(예:--option hub-meshca
)을 지정할 때만--enable_all
에 포함됩니다. 그렇지 않으면 이 플래그를 별도로 지정해야 합니다.
기타 플래그
--dry_run
- 명령어를 출력하지만 실행하지는 않습니다.
--fleet_id
- Fleet의 호스트 프로젝트 ID를 사용하여 Fleet에 클러스터를 등록합니다. 이 플래그는 Google Cloud 외부 클러스터에 필요합니다. Google Cloud 클러스터에 제공되지 않으면 기본값은 클러스터의 프로젝트 ID입니다.
asmcli install
은 설치 전--fleet_id
와 함께 실행하거나,--enable-registration
및--fleet-id
플래그를 전달하여 설치의 일부로 실행할 수 있습니다. 이 설정은 구성한 후에는 변경할 수 없습니다. --managed
- 지원이 중단되었습니다. 클러스터에 하나씩 설치하는 대신 원격 관리형 컨트롤 플레인을 프로비저닝합니다.
--offline
- 출력 디렉터리에 사전 다운로드된 패키지를 사용하여 오프라인 설치를 수행합니다. 디렉터리가 지정되지 않았거나 필요한 파일이 없으면 스크립트가 오류와 함께 종료됩니다.
--only_enable
- 지정된 단계를 수행하여 현재 사용자/클러스터를 설정하지만 아무것도 설치하지 않습니다.
--only_validate
- 검증을 실행하지만 프로젝트 또는 클러스터를 업데이트하지 않고 Cloud Service Mesh를 설치하지 않습니다. 이 플래그는 사용 설정 플래그와 호환되지 않습니다. 사용 설정 플래그로
--only_validate
를 지정하면asmcli
가 오류와 함께 종료됩니다. --print_config
- Cloud Service Mesh를 설치하는 대신 모든 컴파일된 YAML을 표준 출력(stdout)으로 출력합니다. 다른 모든 출력은 일반적으로 stdout으로 이동하더라도 표준 오류(stderr)에 기록됩니다. 이 플래그를 지정하면
asmcli
는 모든 검증 및 설정을 건너 뜁니다. --disable_canonical_service
- 기본적으로
asmcli
는 표준 서비스 컨트롤러를 클러스터에 배포합니다.asmcli
에서 컨트롤러를 배포하지 않으려면--disable_canonical_service
를 지정합니다. 자세한 내용은 표준 서비스 컨트롤러 사용 설정 및 중지를 참조하세요. -h|--help
- 선택사항과 플래그를 설명하는 도움말 메시지를 표시하고 종료합니다.
--use_managed_cni
- 관리형 CNI를 사용합니다. 이 플래그가 전달되지 않으면
asmcli
가 정적 CNI 매니페스트를 적용합니다. --use_vpcsc
- 조직에서 프로젝트에 VPC 서비스 제어를 적용하는 경우
--use_vpcsc
플래그가 있는 관리형 Cloud Service Mesh를 구성해야 합니다. 그렇지 않으면 설치 시 보안 제어에 실패합니다. -v|--verbose
asmcli
가 실행될 때 다음에 실행될 명령어를 인쇄합니다.--verbose
플래그를 사용하면asmcli
가 실행된 후 명령어를 인쇄합니다.--version
asmcli
버전을 인쇄하고 종료합니다. 최신 버전이 없는 경우asmcli_1.22
의 최신 버전을 다운로드할 수 있습니다.