func NewRemoteExec(restGVKClient rest.Interface, config *rest.Config, logger logr.Logger) IExec {
	return &remoteExec{
		restGVKClient: restGVKClient,
		logger:        logger,
		config:        config,
	}
}
NewRemoteExec returns a new IExec which will exec remote cmd.
package exec
import (
	"bytes"
	"io"
	"net/url"
	"strings"
	"github.com/go-logr/logr"
	corev1 "k8s.io/api/core/v1"
	"k8s.io/client-go/kubernetes/scheme"
	"k8s.io/client-go/rest"
	"k8s.io/client-go/tools/remotecommand"
)
type IExec interface {
	ExecCommandInPodSet(podSet []*corev1.Pod, cmd ...string) error
}
type remoteExec struct {
	restGVKClient rest.Interface
	logger        logr.Logger
	config        *rest.Config
}