我创建了一个 Express 应用并部署到 Google kubernetes。我可以在那里看到工作负载并使用服务 URL 访问该应用。
如何查看带有状态代码的流量信息?例如,API 被状态代码(如 2xx、4xx、5xx 等)击中的次数?
谢谢。
答案1
我认为您问的是如何查看已部署应用程序的响应代码,而不是 K8s API 服务器的响应代码。
这看起来就像是你可以不用使用的东西Istio。Istio 检查 http[s] API 调用并报告响应代码、延迟和吞吐量等指标。
答案2
您可以检测您的应用以将指标导出到普罗米修斯。我建议你使用以下方式部署 Prometheus:Prometheus 操作员,然后将其集成到您的应用程序中nodejs 客户端库。
如果您想要更现成的产品,您还可以查看 Stackdriver 监控,但它的灵活性较差。
答案3
Kube-apiserver 执行审计。
基于审计政策您可以定义应该记录哪些事件以及它们应该包含哪些数据。
None
- 不记录符合此规则的事件。
Metadata
- 记录请求元数据(请求用户、时间戳、资源、动词等),但不记录请求或响应主体。
Request
- 记录事件元数据和请求主体,但不记录响应主体。这不适用于非资源请求。
RequestResponse
- 记录事件元数据、请求和响应主体。这不适用于非资源请求。
--audit-policy-file
您可以使用以下标志将带有策略的文件传递给 kube-apiserver
以下是政策清单
要读取 GKE 上的审计日志,您应该
1)启动 API 服务器的代理
kubectl proxy
2)curl 日志文件
curl http://127.0.0.1:8001/logs/kube-apiserver-audit.log