func ReadErrorBody(body io.Reader) (err error) {
	bodyBytes, err := ioutil.ReadAll(body)
	if err != nil {
		return err
	}
	return fmt.Errorf(string(bodyBytes))
}
ReadErrorBody in the error case ready the body message.
But return it as an error (or return an error from reading the body).
package httputil
import (
	"fmt"
	"io"
	"io/ioutil"
	"net/http"
	"k8s.io/klog"
)
const (
	k8sCAFile  = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
	clientCert = "/var/lib/tls/client.crt"
	clientKey  = "/var/lib/tls/client.key"
)
func DeferClose(c io.Closer) {
	if err := c.Close(); err != nil {
		klog.Error(err)
	}
}