code: func ListenAndServeKubeletServer(
  	host HostInterface,
  	resourceAnalyzer stats.ResourceAnalyzer,
  	address net.IP,
  	port uint,
  	tlsOptions *TLSOptions,
  	auth AuthInterface,
  	enableDebuggingHandlers,
  	enableContentionProfiling,
  	redirectContainerStreaming bool,
  	criHandler http.Handler) {
  	klog.Infof("Starting to listen on %s:%d", address, port)
  	handler := NewServer(host, resourceAnalyzer, auth, enableDebuggingHandlers, enableContentionProfiling, redirectContainerStreaming, criHandler)
  	s := &http.Server{
  		Addr:           net.JoinHostPort(address.String(), strconv.FormatUint(uint64(port), 10)),
  		Handler:        &handler,
  		MaxHeaderBytes: 1 << 20,
  	}
  	if tlsOptions != nil {
  		s.TLSConfig = tlsOptions.Config
  		// Passing empty strings as the cert and key files means no
  		// cert/keys are specified and GetCertificate in the TLSConfig
  		// should be called instead.
  		klog.Fatal(s.ListenAndServeTLS(tlsOptions.CertFile, tlsOptions.KeyFile))
  	} else {
  		klog.Fatal(s.ListenAndServe())
  	}
  }
docs: // ListenAndServeKubeletServer initializes a server to respond to HTTP network requests on the Kubelet.