共用方式為


適用於 Azure Kubernetes Service 的 Istio 型服務網格附加元件遙測 API

Istio 可以 產生網格中所有工作負載的計量、分散式追蹤和存取記錄 。 適用於 Azure Kubernetes Service 的 Istio 型服務網格附加元件 (AKS) 會透過 共用 MeshConfig 和 Istio Telemetry API v1 for Istio 附加元件次要修訂 asm-1-22 和更高版本提供遙測自定義選項。

注意

雖然 Istio MeshConfig 也提供跨網格全域設定遙測的選項,但遙測 API 會針對每個服務或每個工作負載的遙測設定提供更細微的控制。 隨著 Istio 社群繼續投資遙測 API,它現在是遙測設定的慣用方法。 我們鼓勵移轉至遙測 API,以設定要收集在網格中的遙測。

必要條件

  • 您必須在修訂 asm-1-22 或更新版本。 如需如何執行次要版本升級的資訊,請參閱 Istio 附加元件升級檔

設定遙測資源

下列範例示範如何使用 來透過遙測 API asm-1-22 ,跨 Istio 附加元件跨網格啟用 Envoy 存取記錄(視需要調整修訂)。 如需附加元件的其他遙測 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 欄位會分類為 allowedsupportedblocked 值。 如需 Istio 附加元件針對功能和網格組態支持原則的詳細資訊,請參閱 Istio 附加 元件支持原則檔

下列遙測 API 元件是 allowed Istio 附加元件或 supported 。 此資料表中未包含的任何欄位都是 blocked

遙測 API 欄位 支援/允許 注意事項
accessLogging.match 支援 -
accessLogging.disabled 支援 -
accessLogging.providers 允許 支援預設 envoy 存取記錄提供者。 如需記錄收集與查詢的受控體驗,請參閱 Azure 監視器 Container Insights Log Analytics。 第三方或開放原始碼記錄收集和分析解決方案不受 allowed 支援。
metrics.overrides 支援 -
metrics.providers 允許 支援使用 Azure 監視器受控 Prometheus計量集合。 第三方或開放原始碼計量會擷取解決方案 allowed ,但不受支援。
tracing.* 允許 所有追蹤組態都 allowed 不受支援。