mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 13:55:41 +00:00
Help debug port forward flakes
This commit is contained in:
parent
146a9e6075
commit
86ae623a09
@ -1215,9 +1215,15 @@ func (dm *DockerManager) PortForward(pod *kubecontainer.Pod, port uint16, stream
|
|||||||
return fmt.Errorf("unable to do port forwarding: nsenter not found.")
|
return fmt.Errorf("unable to do port forwarding: nsenter not found.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
commandString := fmt.Sprintf("%s %s", nsenterPath, strings.Join(args, " "))
|
||||||
|
glog.V(4).Infof("executing port forwarding command: %s", commandString)
|
||||||
|
|
||||||
command := exec.Command(nsenterPath, args...)
|
command := exec.Command(nsenterPath, args...)
|
||||||
command.Stdout = stream
|
command.Stdout = stream
|
||||||
|
|
||||||
|
stderr := new(bytes.Buffer)
|
||||||
|
command.Stderr = stderr
|
||||||
|
|
||||||
// If we use Stdin, command.Run() won't return until the goroutine that's copying
|
// If we use Stdin, command.Run() won't return until the goroutine that's copying
|
||||||
// from stream finishes. Unfortunately, if you have a client like telnet connected
|
// from stream finishes. Unfortunately, if you have a client like telnet connected
|
||||||
// via port forwarding, as long as the user's telnet client is connected to the user's
|
// via port forwarding, as long as the user's telnet client is connected to the user's
|
||||||
@ -1236,7 +1242,11 @@ func (dm *DockerManager) PortForward(pod *kubecontainer.Pod, port uint16, stream
|
|||||||
inPipe.Close()
|
inPipe.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return command.Run()
|
if err := command.Run(); err != nil {
|
||||||
|
return fmt.Errorf("%v: %s", err, stderr.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the IP address of a container's interface using nsenter
|
// Get the IP address of a container's interface using nsenter
|
||||||
|
Loading…
Reference in New Issue
Block a user