我使用 Terraform 建立了一个新的 Vault 集群(https://github.com/sethvargo/vault-on-gke),Vault 一切运行正常。但是我似乎无法在 Stackdriver 中看到任何容器、节点或 Pod 日志。我们手动启动的另一个 GKE 集群运行正常。
我可以使用 kubectl logs 查看 pod 上的日志,没有任何问题。
我完全搞不懂它为什么不起作用。集群启用了 Stackdriver,并且 beta Stackdriver 框已勾选 - 与工作集群相同。计算服务帐户具有编辑者角色,两个帐户中都相同。
有什么想法吗?
答案1
您需要确保您的 kubernetes 集群具有正确的日志记录和监控权限。
为了使集群正常运行,kubernetes master 需要以下 oauth 范围(后两个用于 stackdriver):
- 计算-rw(https://www.googleapis.com/auth/compute)
- 存储-ro (https://www.googleapis.com/auth/devstorage.read_only)
- 日志记录-写入(https://www.googleapis.com/auth/logging.write)
- 监控(https://www.googleapis.com/auth/monitoring)
另外,kubernetes集群中节点的服务账户需要以下权限:
- 角色/logging.logWriter(https://cloud.google.com/iam/docs/understanding-roles#stackdriver_logging_roles)
- 角色/监控.metricWriter(https://cloud.google.com/iam/docs/understanding-roles#stackdriver_monitoring_roles)
更多信息请参阅:
答案2
如果您正在寻找与 kubectl 日志等效的内容,则应在“kubernetes pod”或“kubernetes 容器”中查找日志。“kubernetes cluster”会显示集群活动,例如资源补丁和更新。
接下来要检查的是确保日志显示“Enabled v2(beta)”,并且使用“kubectl get po -n kube-system | grep fluentd”确保 stackdriver 代理在集群中正常运行
如果以上所有检查都通过,我建议创建一个公共问题追踪因为集群版本的 beta 日志记录可能存在问题