如何找到 GKE 的控制平面日志?

问题描述 投票:0回答:4

所以有这个关于审计日志的页面,我很困惑:

k8s.io 服务用于 Kubernetes 审计日志。这些日志由 Kubernetes API 服务器组件生成,它们包含有关使用 Kubernetes API 执行的操作的信息。例如,您使用 kubectl 命令对 Kubernetes 资源所做的任何更改都会由 k8s.io 服务记录。有关更多信息,请参阅 Kubernetes 文档中的审核。

container.googleapis.com 服务用于 GKE 控制平面审核日志。这些日志由 GKE 内部组件生成,包含有关使用 GKE API 执行的操作的信息。例如,您使用 gcloud 命令对 GKE 集群配置执行的任何更改都会由 container.googleapis.com 服务记录。

我该选择哪一个:

  1. /var/log/kube-apiserver.log
    - API Server,负责提供API服务
  2. /var/log/kube-controller-manager.log
    - 管理复制控制器的控制器

或者这些都与 EKS 类似,其中审核日志意味着单独的事物

审核(审计)——Kubernetes 审核日志提供影响集群的各个用户、管理员或系统组件的记录。有关更多信息,请参阅 Kubernetes 文档中的审核。

kubernetes google-kubernetes-engine
4个回答
15
投票

如果集群仍然存在,您应该能够在 GKE 上执行以下操作

kubectl proxy
curl http://localhost:8001/logs/kube-apiserver.log

AFAIK,无法获取已删除集群的服务器日志。


6
投票

GKE 控制平面组件的日志自 2022 年 11 月 29 日起适用于版本 1.22.0 及更高版本的集群。

您只需在集群上激活它即可。要么

  • 通过 CLI:

    gcloud container clusters update [CLUSTER_NAME] \
       --region=[REGION] \
       --monitoring=SYSTEM,WORKLOAD,API_SERVER,SCHEDULER,CONTROLLER_MANAGER
    
  • 通过GCP Web控制台:打开集群详细信息,在“功能”部分中编辑“云日志记录”条目并添加“控制平面”组件。

有关详细信息,请参阅文档

注意解决方案文档中的注释,尤其是关于达到

logging.googleapis.com/write_requests
配额的内容(快速链接)。


1
投票

你不能。 GKE 不提供它们。审核日志有所不同,它们是 API 操作的记录。


0
投票

Cloud Logging 可以与以下查询一起使用。 从我所看到的来看,kubelet 日志是可用的,这个答案应该更新。

resource.type="k8s_node"
resource.labels.project_id="project-name"
resource.labels.location="gcp-cluster-region"
resource.labels.cluster_name="cluster-name"
resource.labels.node_name="gke-node-name"
logName="projects/project-name/logs/kubelet"
© www.soinside.com 2019 - 2024. All rights reserved.