[英]Stackdriver in GKE throws rpc error "Failed to export to Stackdriver" "context deadline exceeded"
我在我的 golang 应用程序容器的 GKE 集群日志中看到以下两行。 该错误是间歇性的(每隔几天出现几个错误)。 我一直找不到太多关于它的信息。
Failed to export to Stackdriver: rpc error = DeadlineExceeded desc = context deadline exceeded
rpc error: code = DeadlineExceeded desc = context deadline exceeded
在某些情况下,docker 或 kubelet 健康检查可能会失败。 这将导致节点在 NotReady 和 Ready 之间摆动。
使用 Cloud Logging 查询,例如:
resource.type="k8s_node"
log_id("kubelet")
resource.labels.node_name=""
(
"Container runtime docker failed!"
OR
"Kubelet is unhealthy!"
OR
"Force shutdown daemon"
)
发布的日志行显示一个 docker 容器被 systemd 基于此运行的健康监控脚本杀死。
这个脚本的作用是通过运行docker ps
检查 docker 是否健康。 如果此命令失败或未在合理时间内返回,则使用SIGUSR1
dockerd
。 这将在节点上留下以下可用于解决问题的文件:
/run/docker/daemon-data-<TIMESTAMP>.log
/run/docker/goroutine-stacks-<TIMESTAMP>.log
请注意,由于节点过载和容器请求的 CPU 很少,容器启动速度很慢。
( kubectl explain pod.spec.containers.resources.requests.cpu
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.