kubernetesk8s.io/kubernetes/pkg/master Index | Files | Directories

package master

import "k8s.io/kubernetes/pkg/master"

Package master contains code for setting up and running a Kubernetes cluster master.

Index

Constants

const (
	// DefaultEndpointReconcilerInterval is the default amount of time for how often the endpoints for
	// the kubernetes Service are reconciled.
	DefaultEndpointReconcilerInterval = 10 * time.Second
)

Functions

func DefaultAPIResourceConfigSource

func DefaultAPIResourceConfigSource() *genericapiserver.ResourceConfig

func NewMasterCountEndpointReconciler

func NewMasterCountEndpointReconciler(masterCount int, endpointClient coreclient.EndpointsGetter) *masterCountEndpointReconciler

NewMasterCountEndpointReconciler creates a new EndpointReconciler that reconciles based on a specified expected number of masters.

Types

type Config

type Config struct {
	GenericConfig *genericapiserver.Config

	StorageFactory           genericapiserver.StorageFactory
	EnableWatchCache         bool
	EnableCoreControllers    bool
	EndpointReconcilerConfig EndpointReconcilerConfig
	DeleteCollectionWorkers  int
	EventTTL                 time.Duration
	KubeletClient            kubeletclient.KubeletClient
	// genericapiserver.RESTStorageProviders provides RESTStorage building methods keyed by groupName
	RESTStorageProviders map[string]genericapiserver.RESTStorageProvider
	// Used to start and monitor tunneling
	Tunneler          genericapiserver.Tunneler
	EnableUISupport   bool
	EnableLogsSupport bool
	// contains filtered or unexported fields
}

func (*Config) Complete

func (c *Config) Complete() completedConfig

Complete fills in any fields not set that are required to have valid data. It's mutating the receiver.

func (*Config) NewBootstrapController

func (c *Config) NewBootstrapController(legacyRESTStorage corerest.LegacyRESTStorage) *Controller

NewBootstrapController returns a controller for watching the core capabilities of the master

func (*Config) SkipComplete

func (c *Config) SkipComplete() completedConfig

SkipComplete provides a way to construct a server instance without config completion.

type Controller

type Controller struct {
	NamespaceRegistry namespace.Registry
	ServiceRegistry   service.Registry

	ServiceClusterIPRegistry rangeallocation.RangeRegistry
	ServiceClusterIPInterval time.Duration
	ServiceClusterIPRange    *net.IPNet

	ServiceNodePortRegistry rangeallocation.RangeRegistry
	ServiceNodePortInterval time.Duration
	ServiceNodePortRange    utilnet.PortRange

	EndpointReconciler EndpointReconciler
	EndpointInterval   time.Duration

	SystemNamespaces         []string
	SystemNamespacesInterval time.Duration

	PublicIP net.IP

	ServiceIP                 net.IP
	ServicePort               int
	ExtraServicePorts         []api.ServicePort
	ExtraEndpointPorts        []api.EndpointPort
	PublicServicePort         int
	KubernetesServiceNodePort int
	// contains filtered or unexported fields
}

Controller is the controller manager for the core bootstrap Kubernetes controller loops, which manage creating the "kubernetes" service, the "default" and "kube-system" namespace, and provide the IP repair check on service IPs

func (*Controller) CreateNamespaceIfNeeded

func (c *Controller) CreateNamespaceIfNeeded(ns string) error

CreateNamespaceIfNeeded will create a namespace if it doesn't already exist

func (*Controller) CreateOrUpdateMasterServiceIfNeeded

func (c *Controller) CreateOrUpdateMasterServiceIfNeeded(serviceName string, serviceIP net.IP, servicePorts []api.ServicePort, serviceType api.ServiceType, reconcile bool) error

CreateMasterServiceIfNeeded will create the specified service if it doesn't already exist.

func (*Controller) PostStartHook

func (c *Controller) PostStartHook(hookContext genericapiserver.PostStartHookContext) error

func (*Controller) RunKubernetesNamespaces

func (c *Controller) RunKubernetesNamespaces(ch chan struct{})

RunKubernetesNamespaces periodically makes sure that all internal namespaces exist

func (*Controller) RunKubernetesService

func (c *Controller) RunKubernetesService(ch chan struct{})

RunKubernetesService periodically updates the kubernetes service

func (*Controller) Start

func (c *Controller) Start()

Start begins the core controller loops that must exist for bootstrapping a cluster.

func (*Controller) UpdateKubernetesService

func (c *Controller) UpdateKubernetesService(reconcile bool) error

UpdateKubernetesService attempts to update the default Kube service.

type EndpointReconciler

type EndpointReconciler interface {
	// ReconcileEndpoints sets the endpoints for the given apiserver service (ro or rw).
	// ReconcileEndpoints expects that the endpoints objects it manages will all be
	// managed only by ReconcileEndpoints; therefore, to understand this, you need only
	// understand the requirements.
	//
	// Requirements:
	//  * All apiservers MUST use the same ports for their {rw, ro} services.
	//  * All apiservers MUST use ReconcileEndpoints and only ReconcileEndpoints to manage the
	//      endpoints for their {rw, ro} services.
	//  * ReconcileEndpoints is called periodically from all apiservers.
	ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []api.EndpointPort, reconcilePorts bool) error
}

EndpointReconciler knows how to reconcile the endpoints for the apiserver service.

type EndpointReconcilerConfig

type EndpointReconcilerConfig struct {
	Reconciler EndpointReconciler
	Interval   time.Duration
}

EndpointReconcilerConfig holds the endpoint reconciler and endpoint reconciliation interval to be used by the master.

type Master

type Master struct {
	*genericapiserver.GenericAPIServer
	// contains filtered or unexported fields
}

Master contains state for a Kubernetes cluster master/api server.

func (*Master) HasThirdPartyResource

func (m *Master) HasThirdPartyResource(rsrc *extensions.ThirdPartyResource) (bool, error)

HasThirdPartyResource returns true if a particular third party resource currently installed.

func (*Master) InstallAPIs

func (m *Master) InstallAPIs(c *Config)

func (*Master) InstallThirdPartyResource

func (m *Master) InstallThirdPartyResource(rsrc *extensions.ThirdPartyResource) error

InstallThirdPartyResource installs a third party resource specified by 'rsrc'. When a resource is installed a corresponding RESTful resource is added as a valid path in the web service provided by the master.

For example, if you install a resource ThirdPartyResource{ Name: "foo.company.com", Versions: {"v1"} } then the following RESTful resource is created on the server:

http://<host>/apis/company.com/v1/foos/...

func (*Master) ListThirdPartyResources

func (m *Master) ListThirdPartyResources() []string

ListThirdPartyResources lists all currently installed third party resources The format is <path>/<resource-plural-name>

func (*Master) RemoveThirdPartyResource

func (m *Master) RemoveThirdPartyResource(path string) error

RemoveThirdPartyResource removes all resources matching `path`. Also deletes any stored data

type RESTOptionsGetter

type RESTOptionsGetter func(resource unversioned.GroupResource) generic.RESTOptions

type RESTStorageProvider

type RESTStorageProvider interface {
	NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter RESTOptionsGetter) (groupInfo genericapiserver.APIGroupInfo, enabled bool)
}

Source Files

controller.go doc.go import_known_versions.go master.go thirdparty_controller.go

Directories

PathSynopsis
pkg/master/portsPackage ports defines ports used by various pieces of the kubernetes infrastructure.
Version
v1.5.0-alpha.1
Published
Oct 11, 2016
Platform
windows/amd64
Imports
84 packages
Last checked
14 minutes ago

Tools for package owners.