이 가이드에서는 Anthos Boutique 샘플 애플리케이션을 설치하여 Anthos Service Mesh를 보여주는 방법을 설명합니다. Anthos Service Mesh를 설치하지 않은 경우 설치 가이드 섹션을 참조하여 적합한 가이드를 선택하세요.
사이드카 자동 삽입 사용 설정
샘플 애플리케이션에 대해 사이드카 자동 삽입(자동 삽입)을 사용 설정하려면 버전 라벨을 샘플 네임스페이스에 추가해야 합니다. 추가하는 라벨은 Anthos Service Mesh Google 관리 제어 영역을 배포했거나 클러스터 내 제어 영역을 설치했는지에 따라 달라집니다. 버전 라벨은 사이드카 인젝터 웹훅에서 삽입된 사이드카를 특정 제어영역 버전과 연결하는 데 사용됩니다.
클러스터 내
애플리케이션의 네임스페이스를 만듭니다.
kubectl create namespace demo
다음 명령어를 사용하여
istiod
에서 라벨을 찾습니다.kubectl -n istio-system get pods -l app=istiod --show-labels
출력은 다음과 유사합니다.
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
출력의
LABELS
열 아래에서istio.io/rev=
프리픽스 다음에 있는istiod
버전 라벨의 값을 확인합니다. 이 예시에서 값은asm-198-6
입니다.demo
네임스페이스에 버전 라벨을 적용합니다. 다음 명령어에서 REVISION은 이전 단계에서 확인한istiod
버전 라벨의 값입니다.kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
출력에서
"istio-injection not found"
메시지는 무시해도 됩니다. 즉, 네임스페이스에 이전에istio-injection
라벨이 사용되지 않았으며, Anthos Service Mesh를 새로 설치하거나 새로 배포해야 합니다. 네임스페이스에istio-injection
및 버전 라벨이 모두 포함된 경우 자동 삽입이 실패하기 때문에 Anthos Service Mesh 문서에서 모든kubectl label
명령어에는istio-injection
라벨 삭제가 포함됩니다.
Google 관리
애플리케이션의 네임스페이스를 만듭니다.
kubectl create namespace demo
demo
네임스페이스에asm-managed
버전 라벨을 적용합니다.kubectl label namespace demo istio-injection- istio.io/rev=asm-managed --overwrite
출력에서
"istio-injection not found"
메시지는 무시해도 됩니다. 즉, 네임스페이스에 이전에istio-injection
라벨이 사용되지 않았으며, Anthos Service Mesh를 새로 설치하거나 새로 배포해야 합니다. 네임스페이스에istio-injection
및 버전 라벨이 모두 포함된 경우 자동 삽입이 실패하기 때문에 Anthos Service Mesh 문서에서 모든kubectl label
명령어에는istio-injection
라벨 삭제가 포함됩니다.
샘플 다운로드 및 배포
이제 자동 삽입이 demo
네임스페이스에 사용 설정되었으므로, BookInfo 애플리케이션의 서비스를 배포하면 사이드카 프록시가 각 서비스와 함께 삽입됩니다.
아직 설치하지 않았다면
kpt
를 설치합니다.gcloud components install kpt
kpt
를 사용하여 샘플을 다운로드합니다.kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
클러스터에 샘플을 배포합니다.
kubectl apply -n demo -f online-boutique
frontend-external
서비스의 외부 IP 주소를 찾습니다.kubectl get service frontend-external -n demo
브라우저에서 애플리케이션을 방문하여 설치를 확인합니다.
http://EXTERNAL_IP/
GKE의 경우 Google Cloud 콘솔에서 Anthos Service Mesh 관측 가능성 기능을 탐색할 수 있습니다. 토폴로지 그래프가 메시에 서비스를 표시하는 데 최대 10분이 걸릴 수 있습니다.
탐색이 완료되면 Online Boutique 샘플을 삭제합니다.
kubectl delete namespaces demo