在kubernetes 1.17.4 版本
这两行log 是一行 因为cmd 参数里有换行符导致大印到两行。
描述的含义,kubelet试图再container里执行一个命令,但是timeout,超时了。
Jun 8 04:02:34 all-in-one-01 kubelet: E0608 04:02:34.476604 17869 remote_runtime.go:351] ExecSync 09802cffb93b38777f36ca1bca03c6499cd5b10ea6667a8bc77e74fe75e1b989 'bash -c /usr/abc.py --probe=lutas --timeout=5
Jun 8 04:02:34 all-in-one-01 kubelet: ' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
resp, err := r.runtimeClient.ExecSync(ctx, req)
if err != nil {
klog.Errorf("ExecSync %s '%s' from runtime service failed: %v", containerID, strings.Join(cmd, " "), err)
return nil, nil, err
}
// RemoteRuntimeService is a gRPC implementation of internalapi.RuntimeService.
type RemoteRuntimeService struct {
timeout time.Duration
runtimeClient runtimeapi.RuntimeServiceClient
// Cache last per-container error message to reduce log spam
logReduction *logreduction.LogReduction
}
// Timer callback.
static void timer_callback(void* arg, grpc_error* error) {
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
grpc_deadline_state* deadline_state =
static_cast<grpc_deadline_state*>(elem->call_data);
if (error != GRPC_ERROR_CANCELLED) {
error = grpc_error_set_int(
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Deadline Exceeded"),
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_DEADLINE_EXCEEDED);
grpc_call_combiner_cancel(deadline_state->call_combiner,
GRPC_ERROR_REF(error));
GRPC_CLOSURE_INIT(&deadline_state->timer_callback,
send_cancel_op_in_call_combiner, elem,
grpc_schedule_on_exec_ctx);
GRPC_CALL_COMBINER_START(deadline_state->call_combiner,
&deadline_state->timer_callback, error,
"deadline exceeded -- sending cancel_stream op");
} else {
GRPC_CALL_STACK_UNREF(deadline_state->call_stack, "deadline_timer");
}
}