訪問日志
訪問日志提供了一種從單個工作負載實例的角度監控和理解行為的方法。
Istio 能夠以一組可配置的格式為服務流量生成訪問日志, 使操作員可以完全控制日志記錄的方式、內容、時間和地點。 有關更多信息,請參閱獲取 Envoy 的訪問日志。
https://preliminary.istio.io/latest/zh/docs/concepts/observability/
kind: Telemetry
https://preliminary.istio.io/latest/zh/docs/tasks/observability/logs/access-log/
kq apply -f - <<EOF
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:name: mesh-defaultnamespace: qfusion
spec:accessLogging:- providers:- name: envoy
EOF
這段代碼是使用 kubectl
命令行工具來應用一個 Kubernetes 配置清單(manifest)。這個清單定義了一個 Istio 的遙測(Telemetry)資源。Istio 是一個開源的服務網格,它提供了流量管理、安全、認證、監控和可觀察性等功能。
具體來說,這段代碼的作用是:
-
kq apply -f -
:這是kubectl
的一個命令,apply
子命令用于將配置清單應用到 Kubernetes 集群中。-f -
表示從標準輸入(stdin)讀取配置清單。 -
<<EOF
和EOF
:這是一個 heredoc 語法,用于在 shell 腳本中包含多行文本。EOF
是結束標記,表示 heredoc 的結束。 -
配置清單內容:
apiVersion: telemetry.istio.io/v1alpha1
:指定了 API 的版本,這里是遙測資源的版本。kind: Telemetry
:表明這是一個遙測資源。metadata
:包含資源的元數據,如名稱和命名空間。name: mesh-default
:資源的名稱。namespace: qfusion
:資源所在的 Kubernetes 命名空間。
spec
:定義了遙測資源的規格和配置。accessLogging
:訪問日志配置,這里定義了一個訪問日志提供者。providers
:提供者列表。name: envoy
:指定了日志提供者的名稱,這里是envoy
,即 Istio 的數據平面代理。
這個配置清單的目的是啟用和配置 Istio 的遙測功能,特別是訪問日志的收集。通過這個配置,Istio 將開始收集和記錄進入和離開服務網格中服務的流量信息。
要應用這個配置,你需要將其保存到一個文件中,然后使用 kubectl apply -f <filename>
命令,或者像示例中那樣使用 heredoc 語法通過標準輸入傳遞給 kubectl
。
Istio入門