Documentation

Overview

    Package server contains functions related to serving Kubelet's external interface.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func ListenAndServeKubeletReadOnlyServer

    func ListenAndServeKubeletReadOnlyServer(host HostInterface, resourceAnalyzer stats.ResourceAnalyzer, address net.IP, port uint, enableCAdvisorJSONEndpoints bool)

      ListenAndServeKubeletReadOnlyServer initializes a server to respond to HTTP network requests on the Kubelet.

      func ListenAndServeKubeletServer

      func ListenAndServeKubeletServer(
      	host HostInterface,
      	resourceAnalyzer stats.ResourceAnalyzer,
      	address net.IP,
      	port uint,
      	tlsOptions *TLSOptions,
      	auth AuthInterface,
      	enableCAdvisorJSONEndpoints,
      	enableDebuggingHandlers,
      	enableContentionProfiling,
      	redirectContainerStreaming bool,
      	criHandler http.Handler)

        ListenAndServeKubeletServer initializes a server to respond to HTTP network requests on the Kubelet.

        func ListenAndServePodResources

        func ListenAndServePodResources(socket string, podsProvider podresources.PodsProvider, devicesProvider podresources.DevicesProvider)

          ListenAndServePodResources initializes a gRPC server to serve the PodResources service

          func NewNodeAuthorizerAttributesGetter

          func NewNodeAuthorizerAttributesGetter(nodeName types.NodeName) authorizer.RequestAttributesGetter

            NewNodeAuthorizerAttributesGetter creates a new authorizer.RequestAttributesGetter for the node.

            Types

            type AuthInterface

              AuthInterface contains all methods required by the auth filters

              func NewKubeletAuth

              func NewKubeletAuth(authenticator authenticator.Request, authorizerAttributeGetter authorizer.RequestAttributesGetter, authorizer authorizer.Authorizer) AuthInterface

                NewKubeletAuth returns a kubelet.AuthInterface composed of the given authenticator, attribute getter, and authorizer

                type HostInterface

                type HostInterface interface {
                	stats.Provider
                	GetVersionInfo() (*cadvisorapi.VersionInfo, error)
                	GetCachedMachineInfo() (*cadvisorapi.MachineInfo, error)
                	GetRunningPods() ([]*v1.Pod, error)
                	RunInContainer(name string, uid types.UID, container string, cmd []string) ([]byte, error)
                	GetKubeletContainerLogs(ctx context.Context, podFullName, containerName string, logOptions *v1.PodLogOptions, stdout, stderr io.Writer) error
                	ServeLogs(w http.ResponseWriter, req *http.Request)
                	ResyncInterval() time.Duration
                	GetHostname() string
                	LatestLoopEntryTime() time.Time
                	GetExec(podFullName string, podUID types.UID, containerName string, cmd []string, streamOpts remotecommandserver.Options) (*url.URL, error)
                	GetAttach(podFullName string, podUID types.UID, containerName string, streamOpts remotecommandserver.Options) (*url.URL, error)
                	GetPortForward(podName, podNamespace string, podUID types.UID, portForwardOpts portforward.V4Options) (*url.URL, error)
                }

                  HostInterface contains all the kubelet methods required by the server. For testability.

                  type KubeletAuth

                  type KubeletAuth struct {
                  	// authenticator identifies the user for requests to the Kubelet API
                  	authenticator.Request
                  	// authorizerAttributeGetter builds authorization.Attributes for a request to the Kubelet API
                  	authorizer.RequestAttributesGetter
                  	// authorizer determines whether a given authorization.Attributes is allowed
                  	authorizer.Authorizer
                  }

                    KubeletAuth implements AuthInterface

                    type Server

                    type Server struct {
                    	// contains filtered or unexported fields
                    }

                      Server is a http.Handler which exposes kubelet functionality over HTTP.

                      func NewServer

                      func NewServer(
                      	host HostInterface,
                      	resourceAnalyzer stats.ResourceAnalyzer,
                      	auth AuthInterface,
                      	enableCAdvisorJSONEndpoints,
                      	enableDebuggingHandlers,
                      	enableContentionProfiling,
                      	redirectContainerStreaming bool,
                      	criHandler http.Handler) Server

                        NewServer initializes and configures a kubelet.Server object to handle HTTP requests.

                        func (*Server) InstallAuthFilter

                        func (s *Server) InstallAuthFilter()

                          InstallAuthFilter installs authentication filters with the restful Container.

                          func (*Server) InstallDebuggingDisabledHandlers

                          func (s *Server) InstallDebuggingDisabledHandlers()

                            InstallDebuggingDisabledHandlers registers the HTTP request patterns that provide better error message

                            func (*Server) InstallDebuggingHandlers

                            func (s *Server) InstallDebuggingHandlers(criHandler http.Handler)

                              InstallDebuggingHandlers registers the HTTP request patterns that serve logs or run commands/containers

                              func (*Server) InstallDefaultHandlers

                              func (s *Server) InstallDefaultHandlers(enableCAdvisorJSONEndpoints bool)

                                InstallDefaultHandlers registers the default set of supported HTTP request patterns with the restful Container.

                                func (*Server) ServeHTTP

                                func (s *Server) ServeHTTP(w http.ResponseWriter, req *http.Request)

                                  ServeHTTP responds to HTTP requests on the Kubelet.

                                  type TLSOptions

                                  type TLSOptions struct {
                                  	Config   *tls.Config
                                  	CertFile string
                                  	KeyFile  string
                                  }

                                    TLSOptions holds the TLS options.

                                    Directories

                                    Path Synopsis
                                    Package portforward contains server-side logic for handling port forwarding requests.
                                    Package portforward contains server-side logic for handling port forwarding requests.
                                    Package remotecommand contains functions related to executing commands in and attaching to pods.
                                    Package remotecommand contains functions related to executing commands in and attaching to pods.
                                    Package stats handles exporting Kubelet and container stats.
                                    Package stats handles exporting Kubelet and container stats.