Kubernetes 控制器运行时客户端如何让RESTClient运行命令

Kubernetes 控制器运行时客户端如何让RESTClient运行命令,kubernetes,client-go,kubebuilder,Kubernetes,Client Go,Kubebuilder,我们已经通过kubebuilder 2.0成功构建了一个运营商。 在这个操作符中,我们需要在pod中运行cmd 在使用k8s.io/client-go/kubernetes.Clientset之前,它获取restconfig并像 execReq := o.clientset.CoreV1().RESTClient().Post(). Resource("pods"). Name(Podname). Namespace("default").

我们已经通过kubebuilder 2.0成功构建了一个运营商。 在这个操作符中,我们需要在pod中运行cmd 在使用k8s.io/client-go/kubernetes.Clientset之前,它获取restconfig并像

   execReq := o.clientset.CoreV1().RESTClient().Post().
        Resource("pods").
        Name(Podname).
        Namespace("default").
        SubResource("exec")

   execReq.VersionedParams(&corev1.PodExecOptions{
        Command:   SqlCommand,
        Stdin:     true,
        Stdout:    true,
        Stderr:    true,
        }, scheme.ParameterCodec)

    exec, err := remotecommand.NewSPDYExecutor(o.restConfig, "POST", execReq.URL())
    if err != nil {
        return fmt.Errorf("error while creating Executor: %v", err)
    }

    err = exec.Stream(remotecommand.StreamOptions{
            Stdin:  os.Stdin,
            Stdout: os.Stdout,
            Stderr: os.Stderr,
            Tty:    false,
        })
    if err != nil {
        return fmt.Errorf("error in Stream: %v", err)
    } else {
        return nil
    }
在控制器运行时世界中,我无法从中找到任何RESTClient

我想知道我们如何从操作员那里在pod中执行cmd

谢谢(编辑)