다음을 통해 공유


Azure Kubernetes Service용 Istio 기반 서비스 메시 추가 기능용 원격 분석 API

Istio는 메시의 모든 워크로드에 대한 메트릭, 분산 추적 및 액세스 로그를 생성할 수 있습니다. AKS(Azure Kubernetes Service)용 Istio 기반 서비스 메시 추가 기능은 공유 MeshConfig 및 Istio용 Istio 원격 분석 API v1 부 수정 버전을 asm-1-22 통해 원격 분석 사용자 지정 옵션을 제공합니다.

참고 항목

Istio MeshConfig는 메시 전체에서 원격 분석을 전역적으로 구성하는 옵션도 제공하지만 원격 분석 API는 서비스별 또는 워크로드별로 원격 분석 설정을 보다 세부적으로 제어할 수 있습니다. Istio 커뮤니티가 원격 분석 API에 계속 투자함에 따라 이제 원격 분석 구성에 선호되는 방법입니다. 메시에서 수집할 원격 분석을 구성하기 위해 원격 분석 API로 마이그레이션하는 것이 좋습니다.

필수 조건

  • 수정 버전 asm-1-22 이상이어야 합니다. 부 버전 업그레이드를 수행하는 방법에 대한 자세한 내용은 Istio 추가 기능 업그레이드 설명서를 참조 하세요.

원격 분석 리소스 구성

다음 예제에서는 필요에 따라 수정 버전을 조정하여 원격 분석 API를 통해 Istio 추가 기능에 대한 메시에서 Envoy 액세스 로깅을 사용하도록 asm-1-22 설정하는 방법을 보여 줍니다. 추가 기능에 대한 다른 원격 분석 API 사용자 지정에 대한 지침은 원격 분석 API 지원 범위 섹션 및 Istio 설명서를 참조하세요.

샘플 애플리케이션 배포

사이드카 주입을 위해 네임스페이스에 레이블을 지정합니다.

kubectl label ns default istio.io/rev=asm-1-22

애플리케이션을 sleep 배포하고 환경 변수를 SOURCE_POD 설정합니다.

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/sleep/sleep.yaml
export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name})

그런 다음, 애플리케이션을 배포합니다.httpbin

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/httpbin/httpbin.yaml

Istio 원격 분석 API를 사용하여 Envoy 액세스 로깅 사용

다음 Istio v1 원격 분석 API 리소스를 배포하여 전체 메시에 대해 Envoy 액세스 로깅을 사용하도록 설정합니다.

cat <<EOF | kubectl apply -n aks-istio-system -f -
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: mesh-logging-default
spec:
  accessLogging:
  - providers:
    - name: envoy
EOF

액세스 로그 테스트

다음으로 sleep 요청을 보냅니다.httpbin

kubectl exec "$SOURCE_POD" -c sleep -- curl -sS -v httpbin:8000/status/418

Pod에 대한 액세스 로그가 표시되는지 sleep 확인합니다.

kubectl logs -l app=sleep -c istio-proxy

다음과 같은 출력이 표시됩니다.

[2024-08-13T00:31:47.690Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 12 11 "-" "curl/8.9.1" "cdecaca5-5964-48f3-b42d-f474dfa623d5" "httpbin:8000" "10.244.0.13:8080" outbound|8000||httpbin.default.svc.cluster.local 10.244.0.12:53336 10.0.112.220:8000 10.244.0.12:42360 - default

이제 Pod에 대한 액세스 로그가 httpbin 표시되는지 확인합니다.

kubectl logs -l app=httpbin -c istio-proxy

다음과 같은 출력이 표시됩니다.

[2024-08-13T00:31:47.696Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 2 1 "-" "curl/8.9.1" "cdecaca5-5964-48f3-b42d-f474dfa623d5" "httpbin:8000" "10.244.0.13:8080" inbound|8080|| 127.0.0.6:55401 10.244.0.13:8080 10.244.0.12:53336 outbound_.8000_._.httpbin.default.svc.cluster.local default

원격 분석 API 지원 범위

AKS용 Istio 서비스 메시 추가 기능의 경우 원격 분석 API 필드는 및 supportedblocked 값으로 allowed분류됩니다. 기능 및 메시 구성에 대한 Istio 추가 기능의 지원 정책에 대한 자세한 내용은 Istio 추가 기능 지원 정책 문서를 참조하세요.

다음 원격 분석 API 구성은 Istio 추가 기능 또는 allowed supported 해당 구성입니다. 이 테이블에 포함되지 않은 필드는 다음과 같습니다 blocked.

원격 분석 API 필드 지원/허용된 참고
accessLogging.match 지원됨 -
accessLogging.disabled 지원됨 -
accessLogging.providers 허용됨 기본 envoy 액세스 로그 공급자가 지원됩니다. 로그 수집 및 쿼리에 대한 관리되는 환경은 Azure Monitor Container Insights Log Analytics를 참조 하세요. 타사 또는 오픈 소스 로그 수집 및 분석 솔루션은 allowed 지원되지 않습니다.
metrics.overrides 지원 여부 -
metrics.providers 허용됨 Azure Monitor Managed Prometheus를 사용하는 메트릭 컬렉션이 지원됩니다. 솔루션을 스크래핑하는 타사 또는 오픈 소스 메트릭은 allowed 지원되지 않습니다.
tracing.* 허용됨 모든 추적 구성은 allowed 지원되지 않습니다.