diff --git a/pkg/apiserver/dispatch/dispatch.go b/pkg/apiserver/dispatch/dispatch.go index 0ebd8d532..1d8465b1a 100644 --- a/pkg/apiserver/dispatch/dispatch.go +++ b/pkg/apiserver/dispatch/dispatch.go @@ -26,7 +26,6 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/util/httpstream" - "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/proxy" "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters" "k8s.io/client-go/rest" @@ -201,21 +200,6 @@ func (c *clusterDispatch) getInnerCluster(name string) *innerCluster { return nil } -// copy from https://github.com/kubernetes/apimachinery/blob/master/pkg/util/proxy/dial.go -func supportsHTTP11(nextProtos []string) bool { - if len(nextProtos) == 0 { - return true - } - - for _, proto := range nextProtos { - if proto == "http/1.1" { - return true - } - } - - return false -} - func (c *clusterDispatch) updateInnerClusters(obj interface{}) { cluster := obj.(*clusterv1alpha1.Cluster) @@ -250,14 +234,6 @@ func (c *clusterDispatch) updateInnerClusters(obj interface{}) { return } - tlsConfig, err := net.TLSClientConfig(transport) - if err == nil { - // since http2 doesn't support websocket, we need to disable http2 when using websocket - if supportsHTTP11(tlsConfig.NextProtos) { - tlsConfig.NextProtos = []string{"http/1.1"} - } - } - c.mutex.Lock() c.innerClusters[cluster.Name] = &innerCluster{ kubernetesURL: kubernetesEndpoint, diff --git a/pkg/apiserver/filters/kubeapiserver.go b/pkg/apiserver/filters/kubeapiserver.go index 5ddc2c2b4..1ab80d7bb 100644 --- a/pkg/apiserver/filters/kubeapiserver.go +++ b/pkg/apiserver/filters/kubeapiserver.go @@ -17,15 +17,16 @@ limitations under the License. package filters import ( - "k8s.io/apimachinery/pkg/util/net" + "net/http" + "net/url" + "k8s.io/apimachinery/pkg/util/proxy" "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters" "k8s.io/client-go/rest" "k8s.io/klog" + "kubesphere.io/kubesphere/pkg/apiserver/request" "kubesphere.io/kubesphere/pkg/server/errors" - "net/http" - "net/url" ) // WithKubeAPIServer proxy request to kubernetes service if requests path starts with /api @@ -37,16 +38,6 @@ func WithKubeAPIServer(handler http.Handler, config *rest.Config, failed proxy.E return handler } - tlsConfig, err := net.TLSClientConfig(defaultTransport) - if err != nil { - klog.V(5).Infof("Unable to unwrap transport %T to get at TLS config: %v", defaultTransport, err) - } - - // since http2 doesn't support websocket, we need to disable http2 when using websocket - if supportsHTTP11(tlsConfig.NextProtos) { - tlsConfig.NextProtos = []string{"http/1.1"} - } - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { info, ok := request.RequestInfoFrom(req.Context()) if !ok { @@ -71,18 +62,3 @@ func WithKubeAPIServer(handler http.Handler, config *rest.Config, failed proxy.E handler.ServeHTTP(w, req) }) } - -// copy from https://github.com/kubernetes/apimachinery/blob/master/pkg/util/proxy/dial.go -func supportsHTTP11(nextProtos []string) bool { - if len(nextProtos) == 0 { - return true - } - - for _, proto := range nextProtos { - if proto == "http/1.1" { - return true - } - } - - return false -}