ASM 설치
Apigee Hybrid는 Anthos Service Mesh(ASM)와 함께 제공된 Istio 배포판을 사용합니다. 클러스터에 ASM을 설치하려면 다음 단계를 따르세요.
지원되는 ASM 버전
하이브리드 버전 1.7에서 지원되는 ASM 버전은 Apigee Hybrid: 지원되는 플랫폼을 참조하세요.
ASM 설정 및 구성 단계 수행
ASM 설치를 완료하려면 먼저 ASM 문서의 ASM 관련 설정 및 구성 단계를 따라야 합니다. 그런 다음 클러스터에 구성을 적용하기 전에 여기로 돌아와 하이브리드 전용 구성을 완료해야 합니다.
ASM 설치 및 구성 안내는 플랫폼에 따라 다릅니다. 플랫폼은 다음 카테고리로 분류됩니다.
- GKE: Google Cloud에서 실행되는 Google Kubernetes Engine 클러스터입니다.
- Google Cloud 외부: 다음 위치에서 실행되는 Anthos 클러스터:
- VMware용 Anthos 클러스터(GKE On-Prem)
- 베어메탈용 Anthos
- AWS용 Anthos 클러스터
- Amazon EKS
- 기타 Kubernetes 플랫폼: 다음 제품에서 생성 및 실행되는 규정 준수 클러스터입니다.
- AKS
- EKS
- OpenShift
GKE
ASM 설치 준비
- 다음 단계에 필요한 환경 변수를 확인하고 필요한 경우 설정합니다.
echo $PROJECT_ID
echo $CLUSTER_NAME
echo $CLUSTER_LOCATION
- 다음 콘텐츠로
overlay.yaml
이라는 오버레이 파일을 만듭니다.apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
apigee-runtime
은 노드 선택기의 기본값입니다. 1단계: 클러스터 만들기에서 만든apigee-runtime
노드 풀입니다. 노드 선택기를 사용하지 않거나 다른 노드 선택기를 사용하는 경우nodeSelector
속성을 변경하거나 생략합니다.- STATIC_IP는 부하 분산기의 IP 주소입니다. 설정하지 않은 경우
loadBalancerIP
속성을 생략하고type
및ports
속성은 유지합니다.
- 안내를 따라 ASM을 설치합니다.
- 필수 도구 설치의 안내를 따라 git, kubectl, jq와 같은 필수 도구와
asmcli
를 설치합니다. - 클러스터 관리자 권한 부여 단계를 수행하고 중지합니다. '프로젝트 및 클러스터 유효성 검사' 단계를 수행하지 마세요.
- 선택적 기능을 사용하여 ASM을 설치합니다.
--option legacy-default-ingressgateway
로 기존 인그레스 게이트웨이를 지정합니다. 예를 들면 다음과 같습니다../asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path는
asmcli
에서 모든 하위 디렉터리를 포함하여 ASM 설치를 설정할 출력 디렉터리입니다. - overlay.yaml은 이전 단계에서 만든 오버레이 파일입니다.
선택적 기능으로 설치의 안내를 따를 때 이 설정을 사용합니다.
- dir_path는
문제 해결
gcloud container hub memberships register
를 참조하는 데 오류가 발생한 경우 GKE 허브에 등록된 최대 클러스터 수를 초과했을 수 있습니다. 예를 들면 다음과 같습니다.
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
다음 단계를 수행하여 이 오류를 해결한 후 asmcli install
을 다시 실행합니다.
- 프로젝트의 GKE 허브 멤버십을 나열합니다.
gcloud container hub memberships list --project=$PROJECT_ID
- GKE 허브 멤버십을 삭제합니다.
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
GKE 허브 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
Google Cloud 외부
다음 제품에서 Anthos를 사용하여 실행되는 Apigee Hybrid 인스턴스를 위해 ASM을 설치 및 설정하는 방법에 대한 안내입니다.
- VMware용 Anthos 클러스터(GKE On-Prem)
- 베어메탈용 Anthos
- AWS용 Anthos 클러스터
- Amazon EKS
ASM 설치 준비
- 다음 단계에 필요한 환경 변수를 확인하고 필요한 경우 설정합니다.
echo ${PROJECT_ID}
echo ${CLUSTER_NAME}
echo ${CLUSTER_LOCATION}
ASMCLI
에 필요한 값을 기록해 둡니다. ASM 문서의 단계를 수행할 때 제공해야 하는 값입니다.- FLEET_PROJECT_ID는 클러스터를 연결할 프로젝트의 이름입니다.
이 설치를 위해 만들고
${PROJECT_ID}
환경 변수에 저장된 프로젝트를 사용합니다. - KUBECONFIG_FILE은 kubeconfig 파일의 전체 경로입니다. 기본 경로는
$HOME/.kube/config
입니다. 자세한 내용은 Kubernetes 문서의 kubeconfig 파일을 사용하여 클러스터 액세스 구성을 참조하세요. - DIR_PATH는 ASMCLI의 출력 디렉터리입니다. 이 경로에서 Istio 구성 파일을 만듭니다. 예를 들면
./asm
입니다. - GATEWAY_NAMESPACE는 Istio 인그레스 게이트웨이의 네임스페이스입니다(예:
istio
). - REVISION은 이 ASM 출시 버전의 버전 라벨입니다.
asm-1129-3
을 사용합니다. - CONTEXT는 Kubernetes 컨텍스트입니다. 다음 명령어로 Kubernetes가 클러스터의 컨텍스트를 사용 중인지 확인합니다.
kubectl config get-contexts
현재 클러스터가 현재 컨텍스트가 아니면 다음 명령어를 사용하여 설정하면 됩니다.
kubectl config use-context CONTEXT
- USER_ACCOUNT는 클러스터를 관리하는 데 사용되는 클러스터 관리자 권한이 있는 계정입니다.
- FLEET_PROJECT_ID는 클러스터를 연결할 프로젝트의 이름입니다.
이 설치를 위해 만들고
- 다음 명령어를 사용하여 컨텍스트를 프로젝트 및 리전으로 설정합니다.
기본 프로젝트 ID를 설정합니다.
gcloud config set project ${PROJECT_ID}
리전 클러스터를 사용하는 경우 기본 컴퓨팅 리전을 설정합니다.
gcloud config set compute/region ${CLUSTER_LOCATION}
- 다음 명령어를 사용하여 사용자 인증 정보를 가져옵니다.
gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
- 다음 콘텐츠로
overlay.yaml
이라는 오버레이 파일을 만듭니다.apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
apigee-runtime
은 노드 선택기의 기본값입니다. 1단계: 클러스터 만들기에서 만든apigee-runtime
노드 풀입니다. 노드 선택기를 사용하지 않거나 다른 노드 선택기를 사용하는 경우nodeSelector
속성을 변경하거나 생략합니다.- STATIC_IP는 부하 분산기의 IP 주소입니다. 설정하지 않은 경우
loadBalancerIP
속성을 생략하고type
및ports
속성은 유지합니다.
- 안내를 따라 ASM을 설치합니다.
- 필수 도구 설치의 안내를 따라 git, kubectl, jq와 같은 필수 도구와
asmcli
를 설치합니다. - 클러스터 관리자 권한 부여 단계를 수행하고 중지합니다. '프로젝트 및 클러스터 유효성 검사' 단계를 수행하지 마세요.
- 선택적 기능을 사용하여 ASM을 설치합니다.
--option legacy-default-ingressgateway
로 기존 인그레스 게이트웨이를 지정합니다. 예를 들면 다음과 같습니다../asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path는
asmcli
에서 모든 하위 디렉터리를 포함하여 ASM 설치를 설정할 출력 디렉터리입니다. - overlay.yaml은 이전 단계에서 만든 오버레이 파일입니다.
선택적 기능으로 설치의 안내를 따를 때 이 설정을 사용합니다.
- dir_path는
문제 해결
gcloud container hub memberships register
를 참조하는 데 오류가 발생한 경우 GKE 허브에 등록된 최대 클러스터 수를 초과했을 수 있습니다. 예를 들면 다음과 같습니다.
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
다음 단계를 수행하여 이 오류를 해결한 후 asmcli install
을 다시 실행합니다.
- 프로젝트의 GKE 허브 멤버십을 나열합니다.
gcloud container hub memberships list --project=$PROJECT_ID
- GKE 허브 멤버십을 삭제합니다.
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
GKE 허브 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
기타 Kubernetes 플랫폼
AKS
ASM 설정 및 다운로드
시작하기 전에 다음 단계를 자세히 읽어보세요. ASM 문서에 나열된 몇 가지 단계를 수행한 후 여기로 돌아와서 설치를 완료합니다.
이 가이드에서는 Anthos 연결 클러스터에 Anthos Service Mesh(ASM) 버전 1.12.9-asm.3 을 정상적으로 설치하는 방법을 설명합니다. 이 가이드를 사용하여 다음 환경에 Anthos Service Mesh를 설치합니다.
- Kubernetes의 Amazon Elastic Kubernetes Service(Amazon EKS)
- Kubernetes의 Microsoft Azure Kubernetes Service(Microsoft AKS)
- Red Hat OpenShift
Anthos Service Mesh 설치 준비
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests/profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 /bin 디렉터리의 도구를 PATH에 추가합니다.
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-osx.tar.gz
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests/profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 /bin 디렉터리의 도구를 PATH에 추가합니다.
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-win.zip
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests\profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 \bin 디렉터리의 도구를 PATH에 추가합니다.
set PATH=%CD%\bin:%PATH%
- 이제 ASM Istio가 설치되었으므로
istioctl
의 버전을 확인합니다.istioctl version
- 컨트롤 플레인 구성요소에 대해 istio-system이라는 네임스페이스를 만듭니다.
kubectl create namespace istio-system
Linux
MacOS
Windows
Anthos Service Mesh 설치
- 다음 콘텐츠로
overlay.yaml
이라는 파일을 만듭니다.apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
프로필을 사용하여istioctl
로 Anthos Service Mesh를 설치합니다.istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlay.yaml
--set revision
인수는istio.io/rev=asm-1129-3
형식의 버전 라벨을 istiod에 추가합니다. 버전 라벨은 자동 사이드카 인젝터 웹훅에서 삽입된 사이드카를 특정 istiod 버전과 연결하는 데 사용됩니다. 네임스페이스에 사이드카 자동 삽입을 사용 설정하려면 istiod의 라벨과 일치하는 버전으로 라벨을 지정해야 합니다.kubectl get pods
를 사용하여istiod
포드가 실행되는지 확인합니다.kubectl get pods -n istio-system
다음과 비슷한 결과가 출력됩니다.
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- 설치가 완료되었는지 확인합니다.
kubectl get svc -n istio-system
다음과 비슷한 결과가 출력됩니다.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
EKS
ASM 설정 및 다운로드
시작하기 전에 다음 단계를 자세히 읽어보세요. ASM 문서에 나열된 몇 가지 단계를 수행한 후 여기로 돌아와서 설치를 완료합니다.
이 가이드에서는 Anthos 연결 클러스터에 Anthos Service Mesh(ASM) 버전 1.12.9-asm.3 을 정상적으로 설치하는 방법을 설명합니다. 이 가이드를 사용하여 다음 환경에 Anthos Service Mesh를 설치합니다.
- Kubernetes의 Amazon Elastic Kubernetes Service(Amazon EKS)
- Kubernetes의 Microsoft Azure Kubernetes Service(Microsoft AKS)
- Red Hat OpenShift
Anthos Service Mesh 설치 준비
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests/profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 /bin 디렉터리의 도구를 PATH에 추가합니다.
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-osx.tar.gz
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests/profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 /bin 디렉터리의 도구를 PATH에 추가합니다.
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-win.zip
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests\profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 \bin 디렉터리의 도구를 PATH에 추가합니다.
set PATH=%CD%\bin:%PATH%
- 이제 ASM Istio가 설치되었으므로
istioctl
의 버전을 확인합니다.istioctl version
- 컨트롤 플레인 구성요소에 대해 istio-system이라는 네임스페이스를 만듭니다.
kubectl create namespace istio-system
Linux
MacOS
Windows
Anthos Service Mesh 설치
- 다음 콘텐츠로
overlay.yaml
이라는 파일을 만듭니다.apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
프로필을 사용하여istioctl
로 Anthos Service Mesh를 설치합니다.istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlay.yaml
--set revision
인수는istio.io/rev=asm-1129-3
형식의 버전 라벨을 istiod에 추가합니다. 버전 라벨은 자동 사이드카 인젝터 웹훅에서 삽입된 사이드카를 특정 istiod 버전과 연결하는 데 사용됩니다. 네임스페이스에 사이드카 자동 삽입을 사용 설정하려면 istiod의 라벨과 일치하는 버전으로 라벨을 지정해야 합니다.kubectl get pods
를 사용하여istiod
포드가 실행되는지 확인합니다.kubectl get pods -n istio-system
다음과 비슷한 결과가 출력됩니다.
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- 설치가 완료되었는지 확인합니다.
kubectl get svc -n istio-system
다음과 비슷한 결과가 출력됩니다.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
ASM 설정 및 다운로드
시작하기 전에 다음 단계를 자세히 읽어보세요. ASM 문서에 나열된 몇 가지 단계를 수행한 후 여기로 돌아와서 설치를 완료합니다.
이 가이드에서는 Anthos 연결 클러스터에 Anthos Service Mesh(ASM) 버전 1.12.9-asm.3 을 정상적으로 설치하는 방법을 설명합니다. 이 가이드를 사용하여 다음 환경에 Anthos Service Mesh를 설치합니다.
- Kubernetes의 Amazon Elastic Kubernetes Service(Amazon EKS)
- Kubernetes의 Microsoft Azure Kubernetes Service(Microsoft AKS)
- Red Hat OpenShift
Anthos Service Mesh 설치 준비
- 다음
oc
명령어를 사용하여 istio-system에anyuid
SCC(보안 컨텍스트 제약조건)을 부여합니다.oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests/profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 /bin 디렉터리의 도구를 PATH에 추가합니다.
export PATH=$PWD/bin:$PATH
- 다음
oc
명령어를 사용하여 istio-system에anyuid
SCC(보안 컨텍스트 제약조건)을 부여합니다.oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-osx.tar.gz
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests/profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 /bin 디렉터리의 도구를 PATH에 추가합니다.
export PATH=$PWD/bin:$PATH
- 다음 OpenShift CLI(
oc
) 명령어를 사용하여 istio-system에anyuid
SCC(보안 컨텍스트 제약조건)을 부여합니다.oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh 설치 파일을 현재 작업 디렉터리에 다운로드합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 서명 파일을 다운로드하고 openssl을 사용하여 서명을 확인합니다.
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 원하는 파일 시스템 위치에 파일 콘텐츠 압축을 풉니다. 예를 들어 콘텐츠를 현재 작업 디렉터리에 추출하려면 다음을 사용하세요.
tar xzf istio-1.12.9-asm.3-win.zip
이 명령어는 다음을 포함하는 현재 작업 디렉터리에
istio-1.12.9-asm.3
이라는 설치 디렉터리를 만듭니다.- 샘플 애플리케이션은
samples
디렉터리에 있습니다. - Anthos Service Mesh를 설치하는 데 사용하는
istioctl
명령줄 도구는bin
디렉터리에 있습니다. - Anthos Service Mesh 구성 프로필은
manifests\profiles
디렉터리에 있습니다.
- 샘플 애플리케이션은
- Anthos Service Mesh 설치 루트 디렉터리에 있는지 확인합니다.
cd istio-1.12.9-asm.3
- 편의를 위해 \bin 디렉터리의 도구를 PATH에 추가합니다.
set PATH=%CD%\bin:%PATH%
- 이제 ASM Istio가 설치되었으므로
istioctl
의 버전을 확인합니다.istioctl version
- 컨트롤 플레인 구성요소에 대해 istio-system이라는 네임스페이스를 만듭니다.
kubectl create namespace istio-system
Linux
MacOS
Windows
Anthos Service Mesh 설치
- 다음 콘텐츠로
overlay.yaml
이라는 파일을 만듭니다.apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
프로필을 사용하여istioctl
로 Anthos Service Mesh를 설치합니다.istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlay.yaml
--set revision
인수는istio.io/rev=asm-1129-3
형식의 버전 라벨을 istiod에 추가합니다. 버전 라벨은 자동 사이드카 인젝터 웹훅에서 삽입된 사이드카를 특정 istiod 버전과 연결하는 데 사용됩니다. 네임스페이스에 사이드카 자동 삽입을 사용 설정하려면 istiod의 라벨과 일치하는 버전으로 라벨을 지정해야 합니다.kubectl get pods
를 사용하여istiod
포드가 실행되는지 확인합니다.kubectl get pods -n istio-system
다음과 비슷한 결과가 출력됩니다.
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- 설치가 완료되었는지 확인합니다.
kubectl get svc -n istio-system
다음과 비슷한 결과가 출력됩니다.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
ASM 설치 맞춤설정
지금 수행한 ASM 설치는 최소 설치이며, 기본 사용 사례를 위해 Apigee Hybrid를 테스트하고 사용하는 데에는 충분합니다. 부하 분산기 포트 번호 추가, 삭제 또는 수정과 같은 고급 사용 사례 해결에 대한 자세한 내용은 선택 기능 사용 설정을 참조하세요.
요약
cert-manager와 ASM이 설치되었으며 이제 Apigee Hybrid 명령줄 도구를 로컬 머신에 설치할 수 있습니다.
1 2 3 (다음) 4단계: apigeectl 설치 5 6 7 8 9