mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Set ExecSync timeout in liveness prober.
This commit is contained in:
parent
90a45b2df3
commit
ef29b836c0
@ -763,7 +763,7 @@ func (m *kubeGenericRuntimeManager) GetAttach(id kubecontainer.ContainerID, stdi
|
|||||||
|
|
||||||
// RunInContainer synchronously executes the command in the container, and returns the output.
|
// RunInContainer synchronously executes the command in the container, and returns the output.
|
||||||
func (m *kubeGenericRuntimeManager) RunInContainer(id kubecontainer.ContainerID, cmd []string, timeout time.Duration) ([]byte, error) {
|
func (m *kubeGenericRuntimeManager) RunInContainer(id kubecontainer.ContainerID, cmd []string, timeout time.Duration) ([]byte, error) {
|
||||||
stdout, stderr, err := m.runtimeService.ExecSync(id.ID, cmd, 0)
|
stdout, stderr, err := m.runtimeService.ExecSync(id.ID, cmd, timeout)
|
||||||
// NOTE(tallclair): This does not correctly interleave stdout & stderr, but should be sufficient
|
// NOTE(tallclair): This does not correctly interleave stdout & stderr, but should be sufficient
|
||||||
// for logging purposes. A combined output option will need to be added to the ExecSyncRequest
|
// for logging purposes. A combined output option will need to be added to the ExecSyncRequest
|
||||||
// if more precise output ordering is ever required.
|
// if more precise output ordering is ever required.
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
"golang.org/x/net/context"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
|
|
||||||
internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri"
|
internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri"
|
||||||
@ -291,9 +292,14 @@ func (r *RemoteRuntimeService) ContainerStatus(containerID string) (*runtimeapi.
|
|||||||
// ExecSync executes a command in the container, and returns the stdout output.
|
// ExecSync executes a command in the container, and returns the stdout output.
|
||||||
// If command exits with a non-zero exit code, an error is returned.
|
// If command exits with a non-zero exit code, an error is returned.
|
||||||
func (r *RemoteRuntimeService) ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) {
|
func (r *RemoteRuntimeService) ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) {
|
||||||
ctx, cancel := getContextWithTimeout(timeout)
|
// Do not set timeout when timeout is 0.
|
||||||
if timeout == 0 {
|
var ctx context.Context
|
||||||
// Do not set timeout when timeout is 0.
|
var cancel context.CancelFunc
|
||||||
|
if timeout != 0 {
|
||||||
|
// Use timeout + default timeout (2 minutes) as timeout to leave some time for
|
||||||
|
// the runtime to do cleanup.
|
||||||
|
ctx, cancel = getContextWithTimeout(r.timeout + timeout)
|
||||||
|
} else {
|
||||||
ctx, cancel = getContextWithCancel()
|
ctx, cancel = getContextWithCancel()
|
||||||
}
|
}
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
Loading…
Reference in New Issue
Block a user