访问日志
访问日志提供了一种从单个工作负载实例的角度监控和理解行为的方法。
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-default
namespace: 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
。