Version: v1.22.4 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2021 License: Apache-2.0 Imports: 60 Imported by: 75



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



This section is empty.


This section is empty.


func ListenAndServeKubeletReadOnlyServer added in v1.2.0

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

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

func ListenAndServeKubeletServer added in v1.2.0

func ListenAndServeKubeletServer(
	host HostInterface,
	resourceAnalyzer stats.ResourceAnalyzer,
	kubeCfg *kubeletconfiginternal.KubeletConfiguration,
	tlsOptions *TLSOptions,
	auth AuthInterface)

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

func ListenAndServePodResources added in v1.13.0

func ListenAndServePodResources(socket string, podsProvider podresources.PodsProvider, devicesProvider podresources.DevicesProvider, cpusProvider podresources.CPUsProvider, memoryProvider podresources.MemoryProvider)

ListenAndServePodResources initializes a gRPC server to serve the PodResources service

func NewNodeAuthorizerAttributesGetter added in v1.5.0

func NewNodeAuthorizerAttributesGetter(nodeName types.NodeName) authorizer.RequestAttributesGetter

NewNodeAuthorizerAttributesGetter creates a new authorizer.RequestAttributesGetter for the node.


type AuthInterface added in v1.2.0

AuthInterface contains all methods required by the auth filters

func NewKubeletAuth added in v1.2.0

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 added in v1.2.0

type HostInterface interface {
	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 added in v1.2.0

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

KubeletAuth implements AuthInterface

type Server added in v1.2.0

type Server struct {
	// contains filtered or unexported fields

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

func NewServer added in v1.2.0

func NewServer(
	host HostInterface,
	resourceAnalyzer stats.ResourceAnalyzer,
	auth AuthInterface,
	kubeCfg *kubeletconfiginternal.KubeletConfiguration) Server

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

func (*Server) InstallAuthFilter added in v1.2.0

func (s *Server) InstallAuthFilter()

InstallAuthFilter installs authentication filters with the restful Container.

func (*Server) InstallDebugFlagsHandler added in v1.21.0

func (s *Server) InstallDebugFlagsHandler(enableDebugFlagsHandler bool)

InstallDebugFlagsHandler registers the HTTP request patterns for /debug/flags/v endpoint.

func (*Server) InstallDebuggingDisabledHandlers added in v1.9.0

func (s *Server) InstallDebuggingDisabledHandlers()

InstallDebuggingDisabledHandlers registers the HTTP request patterns that provide better error message

func (*Server) InstallDebuggingHandlers added in v1.2.0

func (s *Server) InstallDebuggingHandlers()

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

func (*Server) InstallDefaultHandlers added in v1.2.0

func (s *Server) InstallDefaultHandlers()

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

func (*Server) InstallProfilingHandler added in v1.21.0

func (s *Server) InstallProfilingHandler(enableProfilingLogHandler bool, enableContentionProfiling bool)

InstallProfilingHandler registers the HTTP request patterns for /debug/pprof endpoint.

func (*Server) InstallSystemLogHandler added in v1.19.0

func (s *Server) InstallSystemLogHandler(enableSystemLogHandler bool)

InstallSystemLogHandler registers the HTTP request patterns for logs endpoint.

func (*Server) ServeHTTP added in v1.2.0

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

ServeHTTP responds to HTTP requests on the Kubelet.

type TLSOptions added in v1.2.0

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

TLSOptions holds the TLS options.


Path Synopsis
Package stats handles exporting Kubelet and container stats.
Package stats handles exporting Kubelet and container stats.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL