kubernetes

module
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2014 License: Apache-2.0

README

Kubernetes

Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.

Kubernetes is:

  • lean: lightweight, simple, accessible
  • portable: public, private, hybrid, multi cloud
  • extensible: modular, pluggable, hookable, composable
  • self-healing: auto-placement, auto-restart, auto-replication

Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale, combined with best-of-breed ideas and practices from the community.


Kubernetes can run anywhere!

However, initial development was done on GCE and so our instructions and scripts are built around that. If you make it work on other infrastructure please let us know and contribute instructions/code.

Kubernetes is in pre-production beta!

While the concepts and architecture in Kubernetes represent years of experience designing and building large scale cluster manager at Google, the Kubernetes project is still under heavy development. Expect bugs, design and API changes as we bring it to a stable, production product over the coming year.

Concepts

Kubernetes works with the following concepts:

Clusters are the compute resources on top of which your containers are built. Kubernetes can run anywhere! See the Getting Started Guides for instructions for a variety of services.

Pods are a colocated group of Docker containers with shared volumes. They're the smallest deployable units that can be created, scheduled, and managed with Kubernetes. Pods can be created individually, but it's recommended that you use a replication controller even if creating a single pod. More about pods.

Replication controllers manage the lifecycle of pods. They ensure that a specified number of pods are running at any given time, by creating or killing pods as required. More about replication controllers.

Services provide a single, stable name and address for a set of pods. They act as basic load balancers. More about services.

Labels are used to organize and select groups of objects based on key:value pairs. More about labels.

Documentation

Kubernetes documentation is organized into several categories.

  • Getting Started Guides
  • User Documentation
    • in docs
    • for people who want to run programs on kubernetes
    • describes current features of the system (with brief mentions of planned features)
  • Developer Documentation
    • in docs/devel
    • for people who want to contribute code to kubernetes
    • covers development conventions
    • explains current architecture and project plans
  • Design Documentation
    • in docs/design
    • for people who want to understand the design choices made
    • describes tradeoffs, alternative designs
    • descriptions of planned features that are too long for a github issue.
  • Walkthroughs and Examples
    • in examples
    • Hands on introduction and example config files
  • API documentation
  • Wiki

Community, discussion and support

If you have questions or want to start contributing please reach out. We don't bite!

The Kubernetes team is hanging out on IRC on the #google-containers channel on freenode.net. We also have the google-containers Google Groups mailing list for questions and discussion as well as the kubernetes-announce mailing list for important announcements (low-traffic, no chatter).

If you are a company and are looking for a more formal engagement with Google around Kubernetes and containers at Google as a whole, please fill out this form and we'll be in touch.

Directories

Path Synopsis
Godeps
_workspace/src/code.google.com/p/gcfg
Package gcfg reads "INI-style" text-based configuration files with "name=value" pairs grouped into sections (gcfg files).
Package gcfg reads "INI-style" text-based configuration files with "name=value" pairs grouped into sections (gcfg files).
_workspace/src/code.google.com/p/gcfg/scanner
Package scanner implements a scanner for gcfg configuration text.
Package scanner implements a scanner for gcfg configuration text.
_workspace/src/code.google.com/p/gcfg/token
Package token defines constants representing the lexical tokens of the gcfg configuration syntax and basic operations on tokens (printing, predicates).
Package token defines constants representing the lexical tokens of the gcfg configuration syntax and basic operations on tokens (printing, predicates).
_workspace/src/code.google.com/p/gcfg/types
Package types defines helpers for type conversions.
Package types defines helpers for type conversions.
_workspace/src/code.google.com/p/go-uuid/uuid
The uuid package generates and inspects UUIDs.
The uuid package generates and inspects UUIDs.
_workspace/src/code.google.com/p/goauth2/compute/serviceaccount
Package serviceaccount provides support for making OAuth2-authorized HTTP requests from Google Compute Engine instances using service accounts.
Package serviceaccount provides support for making OAuth2-authorized HTTP requests from Google Compute Engine instances using service accounts.
_workspace/src/code.google.com/p/goauth2/oauth
The oauth package provides support for making OAuth2-authenticated HTTP requests.
The oauth package provides support for making OAuth2-authenticated HTTP requests.
_workspace/src/code.google.com/p/goauth2/oauth/example
This program makes a call to the specified API, authenticated with OAuth2.
This program makes a call to the specified API, authenticated with OAuth2.
_workspace/src/code.google.com/p/goauth2/oauth/jwt
The jwt package provides support for creating credentials for OAuth2 service account requests.
The jwt package provides support for creating credentials for OAuth2 service account requests.
_workspace/src/code.google.com/p/goauth2/oauth/jwt/example
This program makes a read only call to the Google Cloud Storage API, authenticated with OAuth2.
This program makes a read only call to the Google Cloud Storage API, authenticated with OAuth2.
_workspace/src/code.google.com/p/google-api-go-client/compute/v1
Package compute provides access to the Compute Engine API.
Package compute provides access to the Compute Engine API.
_workspace/src/code.google.com/p/google-api-go-client/container/v1beta1
Package container provides access to the Google Container Engine API.
Package container provides access to the Google Container Engine API.
_workspace/src/code.google.com/p/google-api-go-client/googleapi
Package googleapi contains the common code shared by all Google API libraries.
Package googleapi contains the common code shared by all Google API libraries.
_workspace/src/code.google.com/p/google-api-go-client/googleapi/internal/uritemplates
Package uritemplates is a level 4 implementation of RFC 6570 (URI Template, http://tools.ietf.org/html/rfc6570).
Package uritemplates is a level 4 implementation of RFC 6570 (URI Template, http://tools.ietf.org/html/rfc6570).
_workspace/src/code.google.com/p/google-api-go-client/googleapi/transport
Package transport contains HTTP transports used to make authenticated API requests.
Package transport contains HTTP transports used to make authenticated API requests.
_workspace/src/github.com/davecgh/go-spew/spew
Package spew implements a deep pretty printer for Go data structures to aid in debugging.
Package spew implements a deep pretty printer for Go data structures to aid in debugging.
_workspace/src/github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
_workspace/src/github.com/elazarl/go-bindata-assetfs
assetfs allows packages to serve static content embedded with the go-bindata tool with the standard net/http package.
assetfs allows packages to serve static content embedded with the go-bindata tool with the standard net/http package.
_workspace/src/github.com/emicklei/go-restful
Package restful, a lean package for creating REST-style WebServices without magic.
Package restful, a lean package for creating REST-style WebServices without magic.
_workspace/src/github.com/emicklei/go-restful/swagger
Package swagger implements the structures of the Swagger https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md
Package swagger implements the structures of the Swagger https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md
_workspace/src/github.com/fsouza/go-dockerclient
Package docker provides a client for the Docker remote API.
Package docker provides a client for the Docker remote API.
_workspace/src/github.com/fsouza/go-dockerclient/testing
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
_workspace/src/github.com/golang/glog
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
_workspace/src/github.com/google/cadvisor/client
TODO(cAdvisor): Package comment.
TODO(cAdvisor): Package comment.
_workspace/src/github.com/google/gofuzz
Package fuzz is a library for populating go objects with random values.
Package fuzz is a library for populating go objects with random values.
_workspace/src/github.com/kr/text
Package text provides rudimentary functions for manipulating text in paragraphs.
Package text provides rudimentary functions for manipulating text in paragraphs.
_workspace/src/github.com/kr/text/colwriter
Package colwriter provides a write filter that formats input lines in multiple columns.
Package colwriter provides a write filter that formats input lines in multiple columns.
_workspace/src/github.com/kr/text/mc
Command mc prints in multiple columns.
Command mc prints in multiple columns.
_workspace/src/github.com/mitchellh/goamz/aws
goamz - Go packages to interact with the Amazon Web Services.
goamz - Go packages to interact with the Amazon Web Services.
_workspace/src/github.com/mitchellh/goamz/ec2/ec2test
The ec2test package implements a fake EC2 provider with the capability of inducing errors on any given operation, and retrospectively determining what operations have been carried out.
The ec2test package implements a fake EC2 provider with the capability of inducing errors on any given operation, and retrospectively determining what operations have been carried out.
_workspace/src/github.com/mitchellh/mapstructure
The mapstructure package exposes functionality to convert an abitrary map[string]interface{} into a native Go structure.
The mapstructure package exposes functionality to convert an abitrary map[string]interface{} into a native Go structure.
_workspace/src/github.com/rackspace/gophercloud
Gophercloud provides a multi-vendor interface to OpenStack-compatible clouds which attempts to follow established Go community coding standards and social norms.
Gophercloud provides a multi-vendor interface to OpenStack-compatible clouds which attempts to follow established Go community coding standards and social norms.
_workspace/src/github.com/skratchdot/open-golang/open
Open a file, directory, or URI using the OS's default application for that object type.
Open a file, directory, or URI using the OS's default application for that object type.
_workspace/src/github.com/spf13/pflag
pflag is a drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
pflag is a drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
_workspace/src/github.com/stretchr/objx
objx - Go package for dealing with maps, slices, JSON and other data.
objx - Go package for dealing with maps, slices, JSON and other data.
_workspace/src/github.com/stretchr/testify/mock
Provides a system by which it is possible to mock your objects and verify calls are happening as expected.
Provides a system by which it is possible to mock your objects and verify calls are happening as expected.
_workspace/src/github.com/tonnerre/golang-pretty
Package pretty provides pretty-printing for Go values.
Package pretty provides pretty-printing for Go values.
_workspace/src/github.com/vaughan0/go-ini
Package ini provides functions for parsing INI configuration files.
Package ini provides functions for parsing INI configuration files.
_workspace/src/golang.org/x/net/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
_workspace/src/golang.org/x/net/html
Package html implements an HTML5-compliant tokenizer and parser.
Package html implements an HTML5-compliant tokenizer and parser.
_workspace/src/golang.org/x/net/html/atom
Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
_workspace/src/golang.org/x/net/html/charset
Package charset provides common text encodings for HTML documents.
Package charset provides common text encodings for HTML documents.
_workspace/src/golang.org/x/net/websocket
Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
_workspace/src/gopkg.in/v2/yaml
Package yaml implements YAML support for the Go language.
Package yaml implements YAML support for the Go language.
build
cmd
e2e
integration
A basic integration test for the service.
A basic integration test for the service.
kube-apiserver
apiserver is the main api server and master for the cluster.
apiserver is the main api server and master for the cluster.
kube-controller-manager
The controller manager is responsible for monitoring replication controllers, and creating corresponding pods to achieve the desired state.
The controller manager is responsible for monitoring replication controllers, and creating corresponding pods to achieve the desired state.
kubelet
The kubelet binary is responsible for maintaining a set of containers on a particular host VM.
The kubelet binary is responsible for maintaining a set of containers on a particular host VM.
kubernetes
A binary that is capable of running a complete, standalone kubernetes cluster.
A binary that is capable of running a complete, standalone kubernetes cluster.
contrib
for-demos/serve_hostname
A small utility to just serve the hostname on TCP and/or UDP.
A small utility to just serve the hostname on TCP and/or UDP.
for-demos/test-webserver
A tiny web server that serves a static file.
A tiny web server that serves a static file.
for-tests/network-tester
A tiny web server for checking networking connectivity.
A tiny web server for checking networking connectivity.
Examples contains sample applications for trying out the concepts in Kubernetes.
Examples contains sample applications for trying out the concepts in Kubernetes.
e2e.go runs the e2e test suite.
e2e.go runs the e2e test suite.
pkg
api
Package api contains the latest (or "internal") version of the Kubernetes API objects.
Package api contains the latest (or "internal") version of the Kubernetes API objects.
api/errors
Package errors provides detailed error types for api field validation.
Package errors provides detailed error types for api field validation.
api/errors/etcd
Package etcd provides conversion of etcd errors to API errors.
Package etcd provides conversion of etcd errors to API errors.
api/latest
Package latest defines the default output serializations that code should use and imports the required schemas.
Package latest defines the default output serializations that code should use and imports the required schemas.
api/meta
Package meta provides functions for retrieving API metadata from objects belonging to the Kubernetes API
Package meta provides functions for retrieving API metadata from objects belonging to the Kubernetes API
api/testapi
Package testapi provides a helper for retrieving the KUBE_API_VERSION environment variable.
Package testapi provides a helper for retrieving the KUBE_API_VERSION environment variable.
api/v1beta1
Package v1beta1 is the v1beta1 version of the API.
Package v1beta1 is the v1beta1 version of the API.
api/v1beta2
Package v1beta2 is the v1beta2 version of the API.
Package v1beta2 is the v1beta2 version of the API.
api/v1beta3
Package v1beta3 is the v1beta3 version of the API.
Package v1beta3 is the v1beta3 version of the API.
api/validation
Package validation has functions for validating the correctness of api objects and explaining what is wrong with them when they aren't valid.
Package validation has functions for validating the correctness of api objects and explaining what is wrong with them when they aren't valid.
apiserver
Package apiserver contains the code that provides a RESTful api service.
Package apiserver contains the code that provides a RESTful api service.
auth/user
Package user contains utilities for dealing with simple user exchange in the auth packages.
Package user contains utilities for dealing with simple user exchange in the auth packages.
capabilities
package capbabilities manages system level capabilities
package capbabilities manages system level capabilities
client
Package client contains the implementation of the client side communication with the Kubernetes master.
Package client contains the implementation of the client side communication with the Kubernetes master.
client/cache
Package cache is a client-side caching mechanism.
Package cache is a client-side caching mechanism.
client/clientcmd
Package cmd provides one stop shopping for a command line executable to bind the correct flags, build the client config, and create a working client.
Package cmd provides one stop shopping for a command line executable to bind the correct flags, build the client config, and create a working client.
client/record
Package record has all client logic for recording and reporting events.
Package record has all client logic for recording and reporting events.
clientauth
Package authcfg defines a file format for holding authentication information needed by clients of Kubernetes.
Package authcfg defines a file format for holding authentication information needed by clients of Kubernetes.
cloudprovider
Package cloudprovider supplies interfaces and implementations for cloud service providers.
Package cloudprovider supplies interfaces and implementations for cloud service providers.
cloudprovider/controller
Package controller contains code for syncing cloud instances with minion registry
Package controller contains code for syncing cloud instances with minion registry
cloudprovider/fake
Package fake_cloud is a test-double implementation of cloudprovider Interface, TCPLoadBalancer and Instances.
Package fake_cloud is a test-double implementation of cloudprovider Interface, TCPLoadBalancer and Instances.
cloudprovider/gce
Package gce_cloud is an implementation of Interface, TCPLoadBalancer and Instances for Google Compute Engine.
Package gce_cloud is an implementation of Interface, TCPLoadBalancer and Instances for Google Compute Engine.
cloudprovider/vagrant
Package vagrant_cloud is an implementation of Interface, TCPLoadBalancer and Instances for developer managed Vagrant cluster.
Package vagrant_cloud is an implementation of Interface, TCPLoadBalancer and Instances for developer managed Vagrant cluster.
constraint
Package constraint has functions for ensuring that collections of containers are allowed to run together on a single host.
Package constraint has functions for ensuring that collections of containers are allowed to run together on a single host.
controller
Package controller contains logic for watching and synchronizing replicationControllers.
Package controller contains logic for watching and synchronizing replicationControllers.
conversion
Package conversion provides go object versioning and encoding/decoding mechanisms.
Package conversion provides go object versioning and encoding/decoding mechanisms.
credentialprovider
Package credentialprovider supplies interfaces and implementations for docker registry providers to expose their authentication scheme.
Package credentialprovider supplies interfaces and implementations for docker registry providers to expose their authentication scheme.
credentialprovider/gcp
Package gcp_credentials contains implementations of DockerConfigProvider for Google Cloud Platform.
Package gcp_credentials contains implementations of DockerConfigProvider for Google Cloud Platform.
health
Package health contains utilities for health checking, as well as health status information.
Package health contains utilities for health checking, as well as health status information.
healthz
Package healthz implements basic http server health checking.
Package healthz implements basic http server health checking.
httplog
Package httplog contains a helper object and functions to maintain a log along with an http response.
Package httplog contains a helper object and functions to maintain a log along with an http response.
kubecfg
Package kubecfg is a set of libraries that are used by the kubecfg command line tool.
Package kubecfg is a set of libraries that are used by the kubecfg command line tool.
kubectl
Package kubectl is a set of libraries that are used by the kubectl command line tool.
Package kubectl is a set of libraries that are used by the kubectl command line tool.
kubelet
Package kubelet is the package that contains the libraries that drive the Kubelet binary.
Package kubelet is the package that contains the libraries that drive the Kubelet binary.
kubelet/config
Package config implements the pod configuration readers.
Package config implements the pod configuration readers.
kubelet/envvars
Package envvars is the package that build the environment variables that kubernetes provides to the containers run by it.
Package envvars is the package that build the environment variables that kubernetes provides to the containers run by it.
labels
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
master
Package master contains code for setting up and running a Kubernetes cluster master.
Package master contains code for setting up and running a Kubernetes cluster master.
master/ports
Package ports defines ports used by various pieces of the kubernetes infrastructure.
Package ports defines ports used by various pieces of the kubernetes infrastructure.
proxy
Package proxy implements the layer-3 network proxy.
Package proxy implements the layer-3 network proxy.
proxy/config
Package config provides decoupling between various configuration sources (etcd, files,...) and the pieces that actually care about them (loadbalancer, proxy).
Package config provides decoupling between various configuration sources (etcd, files,...) and the pieces that actually care about them (loadbalancer, proxy).
registry
Package registry implements the storage and system logic for the core of the api server.
Package registry implements the storage and system logic for the core of the api server.
registry/binding
Package binding contains the middle layer logic for bindings.
Package binding contains the middle layer logic for bindings.
registry/controller
Package controller provides Registry interface and it's RESTStorage implementation for storing ReplicationController api objects.
Package controller provides Registry interface and it's RESTStorage implementation for storing ReplicationController api objects.
registry/endpoint
Package endpoint provides Registry interface and it's RESTStorage implementation for storing Endpoint api objects.
Package endpoint provides Registry interface and it's RESTStorage implementation for storing Endpoint api objects.
registry/etcd
Package etcd provides etcd backend implementation for storing PodRegistry, ControllerRegistry and ServiceRegistry api objects.
Package etcd provides etcd backend implementation for storing PodRegistry, ControllerRegistry and ServiceRegistry api objects.
registry/event
Package event provides Registry interface and it's REST implementation for storing Event api objects.
Package event provides Registry interface and it's REST implementation for storing Event api objects.
registry/generic
Package generic provides a generic object store interface and a generic label/field matching type.
Package generic provides a generic object store interface and a generic label/field matching type.
registry/generic/etcd
Package etcd has a generic implementation of a registry that stores things in etcd.
Package etcd has a generic implementation of a registry that stores things in etcd.
registry/minion
Package minion provides Registry interface and implementation for storing Minions.
Package minion provides Registry interface and implementation for storing Minions.
registry/pod
Package pod provides Registry interface and it's RESTStorage implementation for storing Pod api objects.
Package pod provides Registry interface and it's RESTStorage implementation for storing Pod api objects.
registry/registrytest
Package registrytest provides tests for Registry implementations for storing Minions, Pods, Schedulers and Services.
Package registrytest provides tests for Registry implementations for storing Minions, Pods, Schedulers and Services.
registry/service
Package service provides Registry interface and it's RESTStorage implementation for storing Service api objects.
Package service provides Registry interface and it's RESTStorage implementation for storing Service api objects.
resources
package resources has constants and utilities for dealing with resources
package resources has constants and utilities for dealing with resources
runtime
Package runtime includes helper functions for working with API objects that follow the kubernetes API object conventions, which are: 0.
Package runtime includes helper functions for working with API objects that follow the kubernetes API object conventions, which are: 0.
scheduler
Package scheduler contains a generic Scheduler interface and several implementations.
Package scheduler contains a generic Scheduler interface and several implementations.
service
Package service provides EndpointController implementation to manage and sync service endpoints.
Package service provides EndpointController implementation to manage and sync service endpoints.
standalone
package standalone has utilities for running different Kubernetes binaries in a single binary.
package standalone has utilities for running different Kubernetes binaries in a single binary.
tools
Package tools implements general tools which depend on the api package.
Package tools implements general tools which depend on the api package.
ui
package ui contains static data files compiled to go, and utilities for accessing them.
package ui contains static data files compiled to go, and utilities for accessing them.
util
Package util implements various utility functions used in both testing and implementation of Kubernetes.
Package util implements various utility functions used in both testing and implementation of Kubernetes.
util/config
Package config provides utility objects for decoupling sources of configuration and the actual configuration state.
Package config provides utility objects for decoupling sources of configuration and the actual configuration state.
util/exec
Package exec provides an injectable interface and implementations for running commands.
Package exec provides an injectable interface and implementations for running commands.
util/iptables
Package iptables provides an interface and implementations for running iptables commands.
Package iptables provides an interface and implementations for running iptables commands.
util/wait
Package wait provides tools for polling or listening for changes to a condition.
Package wait provides tools for polling or listening for changes to a condition.
version
Package version supplies version information collected at build time to kubernetes components.
Package version supplies version information collected at build time to kubernetes components.
version/verflag
Package verflag defines utility functions to handle command line flags related to version of Kubernetes.
Package verflag defines utility functions to handle command line flags related to version of Kubernetes.
volume
Package volume includes internal representations of external volume types as well as utility methods required to mount/unmount volumes to kubelets.
Package volume includes internal representations of external volume types as well as utility methods required to mount/unmount volumes to kubelets.
watch
Package watch contains a generic watchable interface, and a fake for testing code that uses the watch interface.
Package watch contains a generic watchable interface, and a fake for testing code that uses the watch interface.
watch/json
Package json implements a simple encoder and decoder for streams of watch events over io.Writer/Readers
Package json implements a simple encoder and decoder for streams of watch events over io.Writer/Readers
plugin
pkg/auth
Package auth contains implementations for interfaces in the pkg/auth package
Package auth contains implementations for interfaces in the pkg/auth package
pkg/auth/authenticator
Package authenticator contains implementations for pkg/auth/authenticator interfaces
Package authenticator contains implementations for pkg/auth/authenticator interfaces
pkg/auth/authenticator/password
Package password contains authenticator.Password implementations
Package password contains authenticator.Password implementations
pkg/auth/authenticator/request/x509
Package x509 provides a request authenticator that validates and extracts user information from client certificates
Package x509 provides a request authenticator that validates and extracts user information from client certificates
pkg/scheduler/factory
Package factory can set up a scheduler.
Package factory can set up a scheduler.
test
integration
Package integration provides integration tests for Kubernetes.
Package integration provides integration tests for Kubernetes.

Jump to

Keyboard shortcuts

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